MSBuild "sgen.exe" fehlt

8

Ich erhalte den folgenden Fehler, wenn ich MSBuild benutze. Der Fehler, den ich bekomme, ist:

  

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (2769,5):   Fehler MSB3086: Der Task konnte "sgen.exe" mit dem SdkToolsPath nicht finden   "" oder der Registrierungsschlüssel   "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.   0A \ WinSDK-NetFx40Tools-x86 ". Stellen Sie sicher, dass der SdkToolsPath festgelegt ist und die   Werkzeug befindet sich in der korrekten prozessorspezifischen Position unter dem   SdkToolsPath und dass das Microsoft Windows SDK installiert ist

Bisher habe ich Folgendes getan:

1) Installieren Sie Windows SDK v8 von hier

2) Ich habe bestätigt, dass der Registrierungsschlüssel "HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8. 0A \ WinSDK-NetFx40Tools-x86" in der Registrierung vorhanden ist

3) Der Registrierungsschlüssel von 2 oben zeigt auf den Pfad "C: \ Programme \ Microsoft SDKs \ Windows \ v8.0A \ bin \ NETFX 4.0 Tools" und ich habe bestätigt, dass der Pfad existiert und dass sgen.exe befindet sich in diesem Verzeichnis

4) Ich habe auch einige meiner eigenen Recherchen durchgeführt und bin auf diesen SO-Beitrag gestoßen. , aber die Antwort beinhaltet die Installation von Visual Studio auf dem Server selbst, was für mich keine Option ist. Ich möchte jedoch darauf hinweisen, dass ich einen anderen Build-Server mit der gleichen Konfiguration habe und es funktioniert gut, so dass meine temporäre Arbeit darin besteht, es auf diesem Server zu erstellen und dann den Build zu kopieren.

Hat jemand einen Einblick in das Problem?

    
John Paul 02.12.2015, 14:33
quelle

3 Antworten

7

Ich konnte es endlich lösen. Schritte zur Lösung:

1) Deinstallieren Sie Windows SDK 8 über Programm und Funktionen.

2) Installieren Sie Windows sdk 8.1 von hier .

3) Bearbeiten Sie die Registrierungsschlüssel

  • SDK40ToolsPfad
  • SDK35ToolsPfad

unter

  

HKLM \ SOFTWARE \ Wow6432Node \ MSBuild \ ToolsVersions \ 11.0

bis

  

$ (Registrierung: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft   SDKs \ Windows \ v8.1A \ WinSDK-NetFx40Tools-x 86 @ Installationsordner)

und die Registrierungsschlüssel

  • FrameworkSDKRoot
  • WindowsSDK80Pfad

bis

  

$ (Registrierung: HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft   SDKs \ Windows \ v8.1@InstallationFolder)

Ich hoffe, dass dies jemand anderen in der Zukunft helfen könnte, wenn sie auf dasselbe Problem stoßen.

    
John Paul 02.12.2015, 19:59
quelle
3

Diese Antwort hat bei mir nicht funktioniert. Ich hatte bereits das Windows 8.1 SDK, aber nicht die Version 8. Ich musste Version 8 herunterladen, die das .Net Framework 4.5 SDK enthielt. Das .Net Framework 4.5 SDK (kommt mit Windows 8 SDK) und 4.6 SDK (kommt mit Visual Studio 2015). Ich habe VS 2015.

Alle SDKs können einzeln unter Ссылка heruntergeladen werden.

Ich habe das 4.5 SDK heruntergeladen und es installiert (Hinweis ohne die Application Verifier-Funktion, da dies einen Installationsfehler verursacht). Nach einem Neustart funktionierte mein Build gut.

    
Liz Ọwọadé 09.01.2017 12:40
quelle
2

Ich hatte den gleichen Fehler, sgen.exe fehlt bei der Verwendung von MSBuild. Ich musste die Registrierungswerte nicht ändern. Ich stellte sicher, dass der MSBuild-Befehl die Version verwendete, die ich installiert hatte. Ich hatte Visual Studio 2015 und 2017 auf meinem PC installiert.

In meinem Fall war es C:\Program Files (x86)\MSBuild.0\bin . Also habe ich den Pfad zu diesem Wert festgelegt, und als ich meine Batch-Datei mit dem neuen Pfadsatz ausgeführt habe, wurde es erfolgreich kompiliert.

    
user9291046 30.01.2018 19:46
quelle