Também encontrei esse problema ao tentar criar um plug-in usando o Visual Studio 2017 no meu computador no local de trabalho terrivelmente bagunçado. Se você pesquisar na internet "incapaz de encontrar o resgen.exe", poderá encontrar todos esses conselhos, como ' basta usar o regedit para editar o registro do Windows e criar uma nova chave aqui e copiar e colar o conteúdo desta pasta em essa outra pasta, blá blá blá. "
Passei semanas apenas bagunçando meu registro do Windows com o regedit, provavelmente adicionei uma dúzia de subchaves e copiei o ResGen.exe em muitos diretórios diferentes, às vezes colocando-o em uma pasta 'bin', às vezes apenas mantendo-o na pasta principal, etc.
No final, percebi: "Ei, se o Visual Studio fornecesse uma mensagem de erro mais detalhada, nada disso seria um problema". Portanto, para obter mais detalhes sobre o erro, executei o MSBuild.exe diretamente no meu arquivo * .csproj na linha de comando:
"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"
Obviamente, você precisará alterar os detalhes do caminho para se adequar à sua situação, mas certifique-se de colocar 1) o caminho completo para o MSBuild.exe 2) o caminho completo para o seu arquivo * .csproj 3) o -fl -flp: logfile = part, que instruirá o MSBuild a criar um arquivo de log de cada etapa executada no processo, 4) o local em que você deseja que o arquivo * .log seja salvo e 5); verbosidade = diagnóstico, que basicamente informa ao MSBuild para incluir toneladas de detalhes no arquivo * .log.
Depois de fazer isso, a compilação falhará como sempre, mas você ficará com um arquivo * .log mostrando exatamente onde o MSBuild procurou o arquivo ResGen.exe. No meu caso, perto da parte inferior do arquivo * .log, encontrei:
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"
Então, basicamente, o MSBuild procurou em cinco diretórios separados o ResGen.exe e desistiu. Esse é o tipo de detalhe que você simplesmente não consegue obter da mensagem de erro do Visual Studio e resolve o problema: basta usar o regedit para criar uma chave para qualquer um desses cinco locais e colocar o valor "InstallationFolder" na chave , que deve apontar para a pasta na qual o ResGen.exe reside (no meu caso, era "C: \ Arquivos de programas \ SDKs da Microsoft \ Windows \ v10.0A \ bin \ NETFX 4.7.2 Tools").
Se você é especialista em humanidades como eu, sem experiência em computadores, pode ser tentado apenas editar o heck out do Registro do Windows e copiar e colar ResGen.exe em todo o lugar, quando se deparar com um erro como esse (que é claro, más práticas). É melhor seguir o procedimento descrito acima: 1) Execute o MSBuild.exe diretamente no seu arquivo * .csproj para descobrir o local exato em que o MSBuild está procurando o ResGen.exe; em seguida, 2) edite o registro do Windows precisamente para que o MSBuild possa encontrar o ResGen. Exe.