我的TeamCity CI构建服务器出现了问题,在编译过程中,会出现以下错误:
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2342,9):error MSB3086:任务无法使用SdkToolsPath“或注册表项"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A”找到"AL.exe“。确保设置了SdkToolsPath,并确保该工具存在于SdkToolsPath下特定处理器的正确位置,并确保安装了Microsoft
我发现了一年前的类似报告,当时人们正在升级到.NET 3.5,例如这一个。在这种情况下,安装最新的SDK解决了这个问题,但是我已经在我的构建服务器上安装了最新的SDK (7和.NET框架4)。MSBuild工具都在服务器上,在一个名为
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319
AL.exe存在于
C:\Program \Microsoft\Windows\v7.1\Bin\NETFX4.0工具
但是,错误消息中提到的注册表项不存在。因此,MSBuild的安装/配置似乎有问题。此错误仅发生在具有需要AL.exe的嵌入式资源的项目中。
发布于 2010-06-23 15:25:03
因为您已经安装了最新的SDK (我假设这是v7.1)
这将告诉msbuild使用该版本的工具,而不需要进行任何可怕的注册表编辑。
发布于 2017-02-09 15:29:57
尽管这个问题很老,但它仍然出现在谷歌搜索结果的顶部,所以我决定把我的解决方案也发出去。在Windows 2016和Windows10Pro上安装TeamCity时,我陷入了同样的问题。
我已经安装了Microsoft Build Tools 2015和Windows 10 SDK (仅用于.NET 4.6.2的工具),并从问题中得到了错误。
缺少的难题是如何设置环境变量:TargetFrameworkSDKToolsDirectory=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools。
在设置环境变量之后,MSBuild能够解决所有需要的工具,包括AL.exe,并成功构建。
请告诉我是否可以通过在注册表中设置值来达到相同的效果,但是在这种情况下,环境变量也可以很好地工作,并且不需要安装VS。
发布于 2010-09-21 10:16:37
您还需要应用以下注册表修复来更新msbuild,以指向V7.1SDK值。
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)"https://stackoverflow.com/questions/2986440
复制相似问题