私も、ひどくめちゃくちゃになった職場のコンピューターでVisual Studio 2017を使用してプラグインをビルドしようとしたときに、この問題に遭遇しました。インターネットで「resgen.exeが見つかりません」を検索すると、次のようなアドバイスをすべて見つけることができます。「regeditを使用してWindowsレジストリを編集し、ここに新しいキーを作成して、このフォルダーの内容をコピーアンドペーストするだけです。この他のフォルダ、何とか何とか何とか何とか。」
私は何週間もかけてWindowsレジストリをregeditでごちゃごちゃにして、おそらく数十のサブキーとコピー貼り付けされたResGen.exeを多くの異なるディレクトリに追加しました。等
結局、「ねえ、Visual Studioがより詳細なエラーメッセージを出せば、これは問題にならない」と気づきました。したがって、エラーの詳細を取得するために、コマンドラインから* .csprojファイルに対して直接 MSBuild.exeを実行しました。
"C:/Windows/Microsoft.NET/Framework/v4.0.3.0319/MSBuild.exe C:/Users/Todd/Plugin.csproj -fl -flp:logfile="C:/Users/Todd/Desktop/error_log.log";verbosity=diagnostic"
もちろん、状況に合わせてパスの詳細を変更する必要がありますが、必ず1)MSBuild.exeへの完全なパス2)* .csprojファイルへの完全なパス3)-fl -flp: logfile =パート。これは、MSBuildがプロセスで実行した各ステップのログファイルを作成するように指示します。4)* .logファイルを保存する場所と5); verbosity = diagnostic。これは、基本的にMSBuildに指示するだけです。 * .logファイルに詳細のトンを含める。
これを行うと、ビルドはいつものように失敗しますが、MSBuildがResGen.exeファイルを探した場所を正確に示す* .logファイルが残ります。 私の場合、*。logファイルの下部近くで、次のことがわかりました。
Compiling plug-in resources (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.2\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.1\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v8.1a\WinSDK-NetFx40Tools-x86 (Task ID:41)
Looking in key SOFTWARE\WOW6432Node\Microsoft\Microsoft SDKs\Windows\v8.0a\WinSDK-NetFx40Tools-x86 (Task ID:41)
MSBUILD: error : Failed to locate ResGen.exe and unable to compile plug-in resource file "C:/Users/Todd/PluginResources.resx"
そのため、基本的に、MSBuildはResGen.exeの5つの個別のディレクトリを調べて、あきらめました。これは、Visual Studioのエラーメッセージからは取得できない種類の詳細であり、問題を解決します。単にregeditを使用して、これら5つの場所のいずれか1つのキーを作成します。値「InstallationFolder」を入力します。 、ResGen.exeが存在するフォルダーを指している必要があります(私の場合は「C:\ Program Files \ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.7.2 Tools」でした)。
コンピューターのバックグラウンドがない、私のような人文科学専攻の場合、このようなエラーが発生したときに、Windowsレジストリの全体を編集し、ResGen.exeをコピーして貼り付けたくなるかもしれません(これはもちろん、悪い習慣)。上記の手順に従うことをお勧めします。1)* .csprojファイルに対して直接MSBuild.exeを実行して、MSBuildがResGen.exeを探している正確な場所を見つけ、2)Windowsレジストリを正確に編集して、MSBuildがResGenを見つけられるようにします。 EXE。