MSBuild не может найти resgen.exe

У меня есть машина с виртуальной машиной, где я скопировал файлы и путь SDK, зашел в реестр и добавил ключи в реестр, но я продолжаю получать сообщение об ошибке, что resgen.exe не может быть найден:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1835,9): 
error MSB3091: Task failed because "resgen.exe" was not found, or the correct 
Microsoft Windows SDK is not installed. The task is looking for "resgen.exe" 
in the"bin" subdirectory beneath the location specified in the Installation Folder 
value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\
Windows\v7.0A. You may be able to solve the problem by doing one of the following:  
1) Install the Microsoft Windows SDK.  
2) Install Visual Studio 2010.  
3) Manually set the above registry key to the correct location.  
4) Pass the correct location into the "ToolPath" parameter of the task.

Я посмотрел в папке Microsoft\Microsoft SDKs\Windows\v7.0A и скопировал поверх resgen.exe практически в каждой сетевой папке, включая корзину, но она постоянно говорит мне, что resgen.exe не может быть найден. Я понятия не имею, что делать.

3 ответа

Я добавил следующий параметр SdkToolPath в проект, и это помогло. Конечно, это не полное решение, так как оно не будет работать на buildserver, но сейчас оно работает, и я просто не регистрирую его со своей машины, и это означает, что я могу делать то, что мне нужно:

<GenerateResource SdkToolsPath="C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools" Sources="@(TextResource)" OutputResources="@(TextResource->'$(OutDir)CommandStrings.resources')" />

Убедитесь, что путь к переменной среды включает в себя папку, в которой находится ResGen.exe

Запустите Regedit для редактирования вашего реестра. Найдите ключ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows. Если параметр "CurrentVersion" еще не существует, создайте новый параметр реестра "CurrentVersion" типа REG_SZ. Убедитесь, что оно имеет то же значение, что и параметр ProductionVersion в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A.

Убедитесь, что у вас есть ключи HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFX40Tools, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFX40E_HARK_HAR_HARK_HAR_HARK_HAR_HARK_HAR_WARK_HAR_HARK_HAR_HARK_HAR_WARK_HAR_WARK_WARK \Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFX40Tools-x64 присутствует в вашем реестре, а значение InstallationFolder установлено в каждом из них.

Другие вопросы по тегам