2015-12-02 3 views
8

У меня возникает следующая ошибка при использовании MSBuild. Ошибка я получаю:MSBuild "sgen.exe" отсутствует

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (2769,5): ошибка MSB3086: Задача не может найти «sgen. exe ", используя SdkToolsPath " "или раздел реестра " HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDK \ Windows \ v8. 0A \ WinSDK-NetFx40Tools-x86 ". Убедитесь, что SdkToolsPath установлен и инструмент EXI ГНС в правильный процессор конкретного места под SdkToolsPath и что в Microsoft Windows SDK установлен

До сих пор я сделал следующее:

1) Установка Windows SDK v8 от here

2) Я подтвердил, что существует ключ реестра "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8. 0A \ WinSDK-NetFx40Tools-x86" в реестре

3) Раздел реестра из 2 выше указывает на путь «C: \ Program Files \ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools», и я подтвердил, что путь существует и что sgen.exe расположенный в этом каталоге

4) Я также сделал некоторые из моих собственных исследований и наткнулся на this SO post, но ответ включает установку визуальной студии на самом сервере, который НЕ является вариантом для меня. Однако я хочу отметить, что у меня есть другой сервер сборки с той же самой настройкой, и он работает нормально, поэтому моя временная работа заключается в том, чтобы создать его на этом сервере, а затем скопировать сборку.

У кого-нибудь есть понимание того, что может быть проблемой?

+1

Почему голос? –

ответ

7

Я, наконец, смог его решить. Шаги к разрешению:

1) Удалите окна sdk 8 через программу и функции.

2) Установите окна sdk 8.1 из here.

3) Редактировать ключи реестра

  • SDK40ToolsPath
  • SDK35ToolsPath

под

HKLM \ SOFTWARE \ Wow6432Node \ MSBuild \ ToolsVersions \ 11,0

к

$ (реестра: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.1А \ WinSDK-NetFx40Tools-x86 @ InstallationFolder)

и Регистери ключи

  • FrameworkSDKRoot
  • WindowsSDK80Path

в

$ (реестра: HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Microsoft SDK \ Windows \ [email protected])

Надеюсь, что это может помочь кому-то в будущем, если они столкнутся с одной и той же проблемой.

+1

Спасибо, Джон Пол. На моей машине это было в HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 4.0 \ 11.0, HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 14.0 \ 11.0 и HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 14.0 \ 14.0, и я установил SDK40ToolsPath в C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.1A \ bin \ NETFX 4.5.1. Инструменты для всех из них. – TomEberhard

+0

Я просто скопировал значения \ toolsversions \ 4.0 \ key в \ toolsversions \ 4.0 \ 11.0, но этот ответ прояснил проблему для меня ... tks –

+0

Я не нашел путь к реестру, но нашел альтернативный путь, который появляется чтобы иметь одинаковые ожидаемые значения, но в папке v12, а не v11. Это одно и то же? Это опечатка? HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 12.0 \ 11.0 –

3

Этот ответ не сработал для меня. У меня уже был SDK для Windows 8.1, но не версия 8. Мне пришлось загрузить версию 8, содержащую SDK .Net Framework 4.5. .Net Framework 4.5 SDK (поставляется с Windows 8 SDK) и 4.6 SDK (поставляется с Visual Studio 2015). У меня есть VS 2015.

Все SDK можно скачать отдельно по адресу https://msdn.microsoft.com/en-us/library/5a4x27ek(v=vs.110).aspx.

Я загрузил 4.5 SDK и установил его (обратите внимание без функции Application Verifier, поскольку это вызывает ошибку установки). После перезагрузки моя сборка работала нормально.

+1

Я сдался с SDK 10. Это добрый 8.1 SDK, а другие были проигнорированы после 10 SDK. Но спасибо, вы даете мне надежду) Я решил эту проблему с помощью cmd-обертки http://stackoverflow.com/a/41784486/390940 – it3xl

2

У меня была такая же ошибка, sgen.exe отсутствует при использовании MSBuild. Мне не нужно было изменять значения реестра. Я убедился, что команда MSBuild использует версию, которую я установил. У меня была установлена ​​Visual Studio 2015 и 2017 на моем ПК.

В моем случае это было C:\Program Files (x86)\MSBuild\14.0\bin. Поэтому я устанавливаю путь к этому значению, и когда я запускал свой пакетный файл с новым набором путей, он скомпилировался успешно.

Смежные вопросы