MSBuild na serwerze CI nie może znaleźć al.exe

Mam problem na moim serwerze TeamCity Ci build, gdzie podczas kompilacji dostaję następujący błąd:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2342, 9): błąd MSB3086: zadanie nie można znaleźć " AL.exe " using the SdkToolsPath ""lub klucz rejestru" HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0a". Upewnij się, że SdkToolsPath jest ustawiony, a narzędzie istnieje w odpowiedniej lokalizacji dla konkretnego procesora pod SdkToolsPath i że Microsoft Windows SDK jest zainstalowany

Znalazłem podobne raporty sprzed roku, kiedy ludzie aktualizowali się do. NET 3.5, na przykład Ten . W takim przypadku instalacja najnowszego SDK rozwiązała problem, jednak zainstalowałem już najnowszy SDK (Microsoft Windows SDK dla Windows 7 i. NET Framework 4) na moim serwerze kompilacji. Wszystkie narzędzia MSBuild znajdują się na serwerze, w folderze o nazwie

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319

I Al.exe istnieje w

C:\Program Files \ Microsoft SDKs \ Windows \ v7. 1 \ Bin \ NETFX 4.0 Tools

Jednak klucz rejestru wymieniony w komunikacie o błędzie nie istnieje. Wygląda na to, że coś jest nie tak z instalacją / konfiguracją MSBuild. Ten błąd występuje tylko w przypadku projektów, które mają wbudowane zasoby, które wymagają AL.exe.

Author: Community, 2010-06-07

9 answers

Jak zainstalowałeś najnowszy SDK (zakładam, że to v7.1)

  1. Przejdź do "Microsoft Windows SDK v7.1" z menu Start
  2. Wybierz "Windows SDK 7.1 Wiersz polecenia" i wprowadź
  3. Cd Setup

  4. WindowsSdkVer-Wersja: v7. 1

Spowoduje to, że msbuild użyje tej wersji narzędzi bez konieczności wykonywania strasznej edycji rejestru.

 53
Author: AndyPook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-06 11:55:43

Mimo, że pytanie jest dość stare, ale nadal pojawia się w górnej części wyników wyszukiwania google, więc postanowiłem opublikować moje rozwiązanie, jak również. Wpadłem w ten sam problem podczas konfiguracji TeamCity na Windows Server 2016 i Windows 10 Pro.

Zainstalowałem Microsoft Build Tools 2015 i Windows 10 SDK (tylko narzędzia dla. NET 4.6.2) i dostałem błąd z pytania.

Brakująca łamigłówka miała ustawić zmienną środowiskową: TargetFrameworkSDKToolsDirectory=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools.

Po ustawieniu zmienna środowiskowa MSBuild była w stanie rozwiązać wszystkie potrzebne narzędzia, w tym AL.exe i build udało się.

Proszę dać mi znać, czy to samo można osiągnąć ustawiając wartości w rejestrze, ale poza tym Zmienne środowiskowe również działają bardzo dobrze w tym przypadku i nie jest potrzebna instalacja VS.

 16
Author: Andrii Litvinov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-09 15:29:57

Musisz również zastosować następującą poprawkę rejestru, aby zaktualizować msbuild, aby wskazać wartości sdk V7. 1.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0]
"MSBuildToolsPath"="C:\\WINDOWS\\Microsoft.NET\\Framework\\v4.0.30319\\"
"MSBuildToolsRoot"="C:\\WINDOWS\\Microsoft.NET\\Framework\\"
"FrameworkSDKRoot"="$(Registry:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.1@InstallationFolder)"
"MSBuildRuntimeVersion"="4.0.30319"
"SDK40ToolsPath"="$(Registry:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.1\\WinSDK-NetFx40Tools-x86@InstallationFolder)"
"SDK35ToolsPath"="$(Registry:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows\\v7.1\\WinSDKNetFx35Tools@InstallationFolder)"
"MSBuildToolsPath32"="$(Registry:HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MSBuild\\ToolsVersions\\4.0@MSBuildToolsPath)"
 6
Author: Taliesin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-21 10:16:37

Miałem tam ten sam problem, Oto moja prosta odpowiedź na to.

Po zainstalowaniu Microsoft Windows SDK 7.1 na serwerze TeamCity.

W Regedit Zmień ten klawisz

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\SDK40ToolsPath

Do

$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools-x86@InstallationFolder)
 4
Author: poolfoot,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-24 14:14:41

Wykonaj poniższe kroki. To zadziałało idealnie. Zaoszczędziłem czas.

1 - Kliknij prawym przyciskiem myszy ikonę Mój Komputer i wybierz Właściwości, lub w Panelu sterowania Windows Wybierz System .

2-Wybierz Zaawansowane Ustawienia Systemu .

3-na karcie Advanced Kliknij zmienne środowiskowe .

4-Kliknij New , Aby utworzyć nową zmienną środowiskową w sekcji zmienna użytkownika .

5- Nazwa zmiennej: TargetFrameworkSDKToolsDirectory

6 - wartość zmiennej: TargetFrameworkSDKToolsDirectory=C:\Program Files (x86)\Microsoft SDKs\Windows\v10. 0a \ bin \ NETFX 4.6.2 Tools

wartość zmiennej zależy od ścieżki instalacji SDK. Tutaj wpisz opis obrazka

7-Kliknij OK i Zapisz wszystkie okna.

8- Restart Visual Studio.

 4
Author: Sumith Harshan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-11-13 07:00:47

Mam proste, skuteczne rozwiązanie.

Problem wydaje się być taki, że wersja narzędzi dostarczona z Visual Studio to wersja 7.0 A, podczas gdy wersja dostarczona z Windows SDK to wersja 7.1. To wszystko bardzo dobrze, ale MSBuild.exe nadal szuka wersji 7.0 a kluczy rejestru, które nie istnieją. To musi być robak!

Patrząc w moim rejestrze, wszystkie informacje dla V6.0 i V7.1 są obecne i poprawne. Więc moje rozwiązanie jest proste. Stworzyłem link do rejestru, który tworzy alias kluczy 7.1.

Nie jest możliwe tworzenie linków do rejestru przy użyciu wbudowanych narzędzi, więc pobrałem małe narzędzie o nazwie 'regln' z tutaj .

C: > regln-x86.exe "\ Registry\Machine \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v7. 0a "" \ Registry \Machine\SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v7. 1 "

Zrobione. MSBuild działa teraz doskonale na serwerze TeamCity.

 3
Author: Tim Long,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-14 22:24:53

Dodaj zmienną systemu env TargetFrameworkSDKToolsDirectory

TAK:

TargetFrameworkSDKToolsDirectory=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools

Restart VS

 2
Author: Altivo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-08 03:31:45

Wystąpił ten sam problem z konfiguracją nowego serwera kompilacji w systemie Windows 10. Znalazłem i zainstalowałem najnowszy (w tym czasie) Microsoft Windows SDK dla Windows 7 i. NET Framework 4 i to rozwiązało problem.

 1
Author: Ryan_S,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-17 15:05:49

Ostatnio mieliśmy ten problem, próbując uruchomić nasze Kompilacje.Net 4.0. Znaleźliśmy lokalizację al.exe zmienił się między wyglądem oryginalnego MSBuild, który pojawił się w.Net 4.0, A Visual Studio SDK dla. Net 4.0 (który został wydany później).

Ponieważ jedyną samodzielną instalacją dostępnych narzędzi SDK jest ta, którą już zainstalowaliśmy bez powodzenia (ta, o której wspomniałeś), jedynym rozwiązaniem, o którym mogliśmy pomyśleć, było zainstalowanie Visual Studio na kompilacji agenci. Umieściliśmy tam Visual Studio 2010 Express (aby instalacja była jak najlżejsza) i problem zniknął. Niezbyt ładne rozwiązanie , ale zadziałało-instalacja VS2010 instaluje również narzędzia SDK konkretnej wersji, której MSBuild wydaje się szukać.

Jest to problem, który naprawdę nie powinien się wydarzyć, ale nie wydawało się, że istnieje sposób, aby MSBuild wyglądał we właściwym miejscu dla narzędzi, nawet hakowanie w rejestrze.

 0
Author: adrianbanks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-07 00:20:23