C# Win 2012服务器上的MSBuild未找到SDKToolsPath

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:任务无法

我有一个新的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:任务无法使用SdkToolsPath“”或注册表项“HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Microsoft SDK\Windows\v8.0A\WinSDK-NetFx40Tools-x86”找到“LC.exe”。确保已设置SdkToolsPath,并且该工具位于SdkToolsPath下的正确处理器特定位置,并且已安装Microsoft Windows SDK

我尝试了几种方法,例如:

没有成功:

  • 我在任何地方都找不到WindowsSdkVer.exe
  • 我已经添加了Env变量SdkToolsPath,但它不受尊重
  • 使用powershell,运行

    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\
    for
    InstallationFolder
    (我不知道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,但找不到它们。因此,副本。我也一直在尝试手动注册的方法,到目前为止什么都没有。谢谢。