这里有一个有趣的问题,它真的让我抓狂。我有一个正在用TeamCity构建的项目。它一直运行得很好,直到一个开发人员在其中一个项目中添加了一个资源文件,其中包含另一个语言环境的字符串。他将.resx文件添加到了默认文件旁边的属性文件夹下。以下是来自构建日志的错误消息:
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. 这里有很多我解决不了的问题。-为什么它可以找到默认.resx文件的AL.exe,但不能找到这个新文件的Vista?-当构建在Server2003上运行时,它为什么要查找看起来特定于Vista的注册表项?
有什么想法吗?
发布于 2009-10-01 16:12:37
通过为Windows Server2008和.NET Framework3.5 SP1安装Windows SDK解决了问题。
我不明白MSBuild是如何与它的工具脱节的,也许我永远也找不到其中的原因,但是安装那个SDK就能帮我解决这个问题。
发布于 2009-09-29 14:49:26
检查是否使用了来自x86的msbuild。在TeamCity build runner中应该有一个选项。
机器上是否安装了VS2008?
发布于 2009-09-29 14:52:37
确保Windows SDK已完全安装在服务器上。.NET软件开发工具包(而不是运行时)中包含了AL.exe (程序集链接器)。
(我在使用ClickOnce的TFS服务器上也遇到了同样的问题,但是懒得修复)
https://stackoverflow.com/questions/1492155
复制相似问题