任务使用SdkToolsPath找不到“ LC.exe”

jas*_*son 2 c# tfs visual-studio-2013

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

错误6任务使用SdkToolsPath“”或注册表项“ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SDKs \ Windows \ v8.1A \ WinSDK-NetFx40Tools-x86”找不到“ LC.exe”。确保已设置SdkToolsPath,并且该工具位于SdkToolsPath下正确的处理器特定位置,并且已安装Microsoft Windows SDK

我已经在网上搜索了,但是找不到解决方案。我使用VS 2013和.NET4。如何解决此问题?谢谢。

小智 6

如果您使用 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"


Tom*_*ard 5

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

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

然后以这种方式找到lc.exe。因此,为lc.exe做一个目录/ s并使用该路径。

我以前曾希望使用来设置此功能<SdkToolsPath>,但这没有用。在Microsoft.Common.targets中,从设置了SdkToolsPath TargetFrameworkSDKToolsDirectory,因此我尝试了这一点,并且它起作用了。(如果变量名对应于1到1,但它们不相等,那会很好。)

这是在Visual Studio 2015上,并且从ant调用了msbuild。

  • &lt;PropertyGroup&gt; &lt;TargetFrameworkSDKToolsDirectory&gt; C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v10.0A \ bin \ NETFX 4.6工具&lt;/ TargetFrameworkSDKToolsDirectory&gt; &lt;/ PropertyGroup&gt; (2认同)

Jus*_*TFS -4

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

许可证编译器读取包含许可信息的文本文件,并生成可以作为资源嵌入到公共语言运行时可执行文件中的二进制文件。每当将许可控件添加到窗体时,Windows 窗体设计器都会自动生成或更新 .licx 文本文件。作为编译的一部分,项目系统会将 .licx 文本文件转换为 .licenses 二进制资源,为 .NET 控件许可提供支持。然后,二进制资源将嵌入到项目输出中。当您在构建项目时使用许可证编译器时,不支持 32 位和 64 位之间的交叉编译。这是因为许可证编译器必须加载程序集,而不允许从 32 位应用程序加载 64 位程序集,反之亦然。在这种情况下,请从命令行使用许可证编译器手动编译许可证,并指定相应的架构。该工具随 Visual Studio 一起自动安装。要运行该工具,请使用开发人员命令提示符(或 Windows 7 中的 Visual Studio 命令提示符)。有关详细信息,请参阅 Visual Studio 命令提示符。

  • 我不明白这句话是如何回答这个问题的。您可以添加摘要或解释吗? (18认同)
  • 我认为这句话根本没有帮助。对我来说,问题甚至与 LC.exe 无关,但未设置 SdkToolsPath。此外,我们中的一些人尝试在未安装 Visual Studio 的情况下编译项目。 (7认同)
  • 尽管OP已经接受了这个答案,但它实际上并没有回答问题,也没有提供有关如何解决问题的足够细节。这只是复制和粘贴。 (2认同)