C# Win 2012服务器上的MSBuild未找到SDKToolsPath
我有一个新的Win 2012 64位服务器,在该服务器上安装了Win 10 SDK,并将其从我的开发机器v8.0A和v8.1复制到目录:C# Win 2012服务器上的MSBuild未找到SDKToolsPath,c#,windows,jenkins,msbuild,windows-server-2012,C#,Windows,Jenkins,Msbuild,Windows Server 2012,我有一个新的Win 2012 64位服务器,在该服务器上安装了Win 10 SDK,并将其从我的开发机器v8.0A和v8.1复制到目录: C:\ProgramFiles(x86)\Microsoft SDK\Windows 我试图使用Jenkins/MSBuild构建x64.Net 4.0项目,但出现错误: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(2428,5):错误MSB3086:任务无法
C:\ProgramFiles(x86)\Microsoft SDK\Windows
我试图使用Jenkins/MSBuild构建x64.Net 4.0项目,但出现错误:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets(2428,5):错误MSB3086:任务无法使用SdkToolsPath“”或注册表项“HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Microsoft SDK\Windows\v8.0A\WinSDK-NetFx40Tools-x86”找到“LC.exe”。确保已设置SdkToolsPath,并且该工具位于SdkToolsPath下的正确处理器特定位置,并且已安装Microsoft Windows SDK
我尝试了几种方法,例如:
没有成功:
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86"
你应该买一些看起来像
ProductVersion REG_SZ 4.6.00081
ComponentName REG_SZ Microsoft .NET Framework 4.6 SDK
InstallationFolder REG_SZ C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\
但是,返回SdkToolsPath”“
可能意味着注册表不存在,或者InstallationFolder
也是一个空字符串
我自己刚刚解决了这个问题,所以我不知道潜在故障的范围,但我在本地运行了reg查询,得到了C:\ProgramFiles(x86)\Microsoft SDK\Windows\v10.0A\bin\NETFX 4.6 Tools\
forInstallationFolder
(我不知道v8.0A的路径是什么样子的)。然后,我将文件夹bin\NETFX
复制到我的服务器上,然后在注册表中添加一个指向该位置的链接。比如:
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools-x86" /d "C:\bin\NETFX 4.6 Tools\\" /t REG_SZ /v InstallationFolder
检查WOW6432节点
我添加了注册表以指向本地副本,但无论如何,我都无法让msbuild使用提供的路径。我看到有人在查询WOW6432,所以我在本地查询了“HKEY\U LOCAL\U MACHINE\SOFTWARE\WOW6432Node\Microsoft\Microsoft SDK\Windows\v8.0A\WinSDK-NetFx40Tools-x86”,并看到它存在并已填充。然后我在服务器上添加了注册表,之后一切正常。我假设您必须添加一些注册表项,您应该能够在源PC上找到这些注册表项。这样做,或者正确安装这些SDK。我试图找到这些SDK,但找不到它们。因此,副本。我也一直在尝试手动注册的方法,到目前为止什么都没有。谢谢。