Сбой сборки, потому что не удается найти AL.exe

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

C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(2105, 9):
error MSB3091: Task failed because "AL.exe" was not found, or the correct
Microsoft Windows SDK is not installed. The task is looking for "AL.exe" in the "bin"
subdirectory beneath the location specified in the InstallationFolder value
of the registry key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A.
You may be able to solve the problem by doing one of the following:
1) Install the Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5.
2) Install Visual Studio 2008.
3) Manually set the above registry key to the correct location.
4) Pass the correct location into the "ToolPath" parameter of the task. 

Здесь есть ряд вещей, которые я не могу решить. Получилось AL.exe для файла.resx по умолчанию, но не для этого нового? - Почему он ищет ключ реестра, который выглядит специфично для Vista, когда сборка выполняется на Server 2003?

Есть идеи?

3 ответа

Решение

Проблема решена путем установки Windows SDK для Windows Server 2008 и.NET Framework 3.5 SP1.

Я не понимаю, как MSBuild пошла в ногу со своими инструментами, возможно, я никогда не узнаю причину, но установка этого SDK устранила проблему для меня.

Убедитесь, что Windows SDK полностью установлен на сервере. AL.exe (сборщик сборок) входит в состав.NET SDK (не во время выполнения).

(У меня та же проблема на моем TFS-сервере с ClickOnce, но лень ее исправлять)

Проверьте, используется ли msbuild от x86. Должна быть опция в сборщике сборок TeamCity.

VS2008 был установлен на машине?

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