任务无法找到" LC.exe"使用SdkToolsPath

时间:2014-09-29 15:35:30

标签: c# tfs visual-studio-2013

我使用TFS将项目克隆到了我的计算机,当我构建项目时出现此错误:

  

错误6任务无法找到" LC.exe"使用SdkToolsPath""或者   注册表项" HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft   的SDK \的Windows \ v8.1A \ WinSDK-NetFx40Tools-86&#34 ;.确保   设置了SdkToolsPath,该工具存在于正确的处理器中   SdkToolsPath下的具体位置和Microsoft   已安装Windows SDK

我在网上搜索过但无法找到解决方案。我使用VS 2013和.NET 4。 我怎样才能解决这个问题?感谢。

4 个答案:

答案 0 :(得分:3)

事实证明,您可以直接在.csproj文件中指定SDK的路径:

<TargetFrameworkSDKToolsDirectory>C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools</TargetFrameworkSDKToolsDirectory>

并且构建找到了lc.exe那种方式。 所以对lc.exe执行dir / s并使用该路径。

我之前希望使用<SdkToolsPath>进行设置,但这不起作用。在Microsoft.Common.targets中,SdkToolsPath从TargetFrameworkSDKToolsDirectory设置,所以我尝试了它并且它有效。 (如果变量名对应1比1,那就太好了,但是他们不会这样做。)

这是在Visual Studio 2015上,并且从ant。

调用msbuild

答案 1 :(得分:0)

http://msdn.microsoft.com/en-us/library/ha0k3c9f(v=vs.110).aspx

  

许可证编译器读取包含许可的文本文件   信息并生成可嵌入的二进制文件   公共语言运行时可执行文件作为资源.licx文本文件是   由Windows窗体设计器自动生成或更新   只要将许可控件添加到表单中。作为...的一部分   编译时,项目系统将转换.licx文本文件   到.licenses二进制资源,它提供对.NET的支持   控制许可。然后二进制资源将嵌入到   项目产出。 32位和64位之间的交叉编译不是   在构建时使用许可证编译器时支持   项目。这是因为许可证编译器必须加载程序集,   从32位应用程序加载64位程序集不是   允许,反之亦然。在这种情况下,请使用许可证编译器   用于手动编译许可证的命令行,并指定   相应的架构。 此工具自动安装   Visual Studio 。要运行该工具,请使用Developer Command Prompt(或   Windows 7中的Visual Studio命令提示符)。欲获得更多信息,   请参阅Visual Studio命令提示符。

答案 2 :(得分:0)

如果您使用MSBuild.exe从命令行构建项目,则可以将TargetFrameworkSDKToolsDirectory作为参数传递,以避免编辑.csproj文件。 例如: MSBuild.exe mysolution.sln /t:build /p:TargetFrameworkSDKToolsDirectory="C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools"

答案 3 :(得分:0)

我遇到了同样的问题,并通过重新安装Visual Studio来解决了该问题。