Tim*_*ong 45 msbuild teamcity winapi .net-4.0
我在TeamCity CI构建服务器上遇到问题,在编译期间我收到以下错误:
C:\ WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(2342,9):错误MSB3086:任务找不到"AL.exe"使用SdkToolsPath""或注册表项"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A".确保已设置SdkToolsPath,并且该工具位于SdkToolsPath下正确的处理器特定位置,并且已安装Microsoft Windows SDK
我在一年前发现类似的报告,当时人们正在升级到.NET 3.5,例如这个.在这种情况下,安装最新的SDK解决了这个问题,但是我已经在构建服务器上安装了最新的SDK(适用于Windows 7和.NET Framework 4的Microsoft Windows SDK).MSBuild工具都在服务器上,位于一个名为的文件夹中
C:\ WINDOWS\Microsoft.NET \框架\ v4.0.30319
和AL.exe存在于
C:\ Program Files\Microsoft SDKs\Windows\v7.1\Bin\NETFX 4.0工具
但是,错误消息中提到的注册表项不存在.因此,似乎MSBuild的安装/配置有问题.此错误仅发生在具有嵌入式资源的项目中,这些项目需要AL.exe.
And*_*ook 53
因为你已经安装了最新的SDK(我假设是v7.1)
- 从"开始"菜单转到"Microsoft Windows SDK v7.1"
- 选择"Windows SDK 7.1命令提示符"并输入
cd安装程序
WindowsSdkVer -version:v7.1
这将告诉msbuild使用该版本的工具,而无需进行任何可怕的注册表编辑.
And*_*nov 16
虽然这个问题很老但是它仍然出现在谷歌搜索结果的顶部,所以我决定也发布我的解决方案.在Windows Server 2016和Windows 10 Pro上的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.
小智 6
您还需要应用以下注册表修复程序来更新msbuild以指向V7.1 sdk值.
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)"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
31244 次 |
最近记录: |