我使用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。 我怎样才能解决这个问题?感谢。
答案 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来解决了该问题。