我知道StackOverflow上有几个问题可以解决这个问题 - 这是我的变种......
构建服务器:Windows Server 2012,使用Jenkins
Windows SDK:8.1(最新版)
编译配置:x64调试
当我向项目中添加一些DevExpress dll时,就开始发生这种情况了。它在我的机器上编译很好,但在MSBuild下失败了。错误消息中的SdkToolsPath为空 - 我们已将其设置为lc.exe的位置(在bin \ x64目录中)作为环境变量,但无效。
有什么建议吗?
更新:根据我在另一篇文章中看到的建议,我将/ v:diag标志添加到MSBuild。看起来,尽管有相反的暗示,MSBuild 看到了环境变量。我正在使用64位版本的MSBuild进行编译,所以我认为我需要64位版本的lc.exe,因此我选择了路径。我不是构建服务器上的管理员,所以我有点不愿意开始要求进行注册表修改 - 是不是需要让它工作?
答案 0 :(得分:1)
所以我的管理员找到了答案:这需要向注册表添加密钥,但不是基于错误消息中列出的内容。集合如下:
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A]
"InstallationFolder"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\"
"ProductVersion"="8.1.51641"
"ProductName"="Microsoft .NET Framework 4.5.1 SDK"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools]
"ProductVersion"="8.1.51641"
"ComponentName"="Microsoft .NET Framework 4.5.1 SDK"
"InstallationFolder"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\bin\\NETFX 4.5.1 Tools\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x64]
"ProductVersion"="8.1.51641"
"ComponentName"="Microsoft .NET Framework 4.5.1 SDK"
"InstallationFolder"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\bin\\NETFX 4.5.1 Tools\\x64\\"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86]
"ProductVersion"="8.1.51641"
"ComponentName"="Microsoft .NET Framework 4.5.1 SDK"
"InstallationFolder"="C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v8.1A\\bin\\NETFX 4.5.1 Tools\\"