错误 MSB6006:“lc.exe”以代码 -1 退出

Posted

技术标签:

【中文标题】错误 MSB6006:“lc.exe”以代码 -1 退出【英文标题】:error MSB6006: "lc.exe" exited with code -1 【发布时间】:2020-06-19 00:56:56 【问题描述】:

我无法再构建我的应用程序了, 每次我尝试编译都会出现以下错误。

我从未更改过 Microsoft.Common.CurrentVersion.targets 文件(或任何其他与 MSBuild 相关的文件)中的任何内容。


文件的完整路径:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets

似乎/出现错误的行:

<LC
    Sources="@(_LicxFile)"
    LicenseTarget="$(TargetFileName)"
    OutputDirectory="$(IntermediateOutputPath)"
    OutputLicense="$(IntermediateOutputPath)$(TargetFileName).licenses"
    ReferencedAssemblies="@(ReferencePathWithRefAssemblies);@(ReferenceDependencyPaths)"
    NoLogo="$(NoLogo)"
    ToolPath="$(LCToolPath)"
    SdkToolsPath="$(TargetFrameworkSDKToolsDirectory)"
    EnvironmentVariables="$(LCEnvironment)"
    MSBuildArchitecture="$(LCMSBuildArchitecture)"
    TargetFrameworkVersion="$(TargetFrameworkVersion)"
    >

这里的主要问题是我可以编译所有其他应用程序,但不是我最重要的应用程序,它是用 .NET Framework 4.7.2 用 C# WPF 编写的。

有人知道为什么我可能无法编译解决方案吗?

【问题讨论】:

您好,据我所知,Microsoft.Common.CurrentVersion.targets 是一个 msbuild 系统文件,如果出现错误,则表示您的项目有问题。您的项目是否有任何错误或下划线?如果您有任何带有警告的 nuget 包,您可以重新安装它们。 Besdes,您可以将构建日志设置为详细以查看具体警告。此外,请与我们分享xxxx.csproj 文件以解决您的问题。 【参考方案1】:

错误 MSB6006:“lc.exe”以代码 -1 退出

这个错误表示你的项目有问题而不是Microsoft.Common.CurrentVersion.targets文件

其实要查看具体错误,你应该把你的Build Output log设置为Diagnostic/Detailed by Tools-->Options--> Projects and Solutions-->Build and Run-->将MSBuild project build output verbosity设置为Diagnostic/Detailed。然后当你再次构建时,你可以看到它的详细信息。

您可以尝试遵循以下提示:

    请检查您的 nuget 包上是否有任何警告。如果是这样,请重新安装它们或只使用 Package Manage Console 下的update-Package -reinstall

    如果你有任何post(pre)-build event(右键你的项目-->Properties-->Build Event),请检查命令是否有错误.

    如果您有 licenses.licx 文件,则应将它们从您的项目中排除。

    您可以尝试新建一个 WPF 项目,然后添加与之前的项目相同的项目来测试是否是您的项目的问题。

    do a repair in VS Installer 以防您的 VS 环境出现问题或将您的 VS 更新到最新版本。

另外,如果可能,请将您的 WPF 项目的xxxxx.csproj 文件分享给我们,以便快速解决您的问题。另外,还有a similar issue关于这个错误。

【讨论】:

您的详细输出提示是黄金!我能够通过手动重新创建没有内容的 licenses.licx 文件来解决此问题。 从 VS 2017 升级到 VS 2019 后,我必须清除 licenses.licx 中的所有行以避免错误 MSB6006:“lc.exe”以代码 -1 退出。但我不确定为什么以及为什么这些组件不再需要许可证密钥。

以上是关于错误 MSB6006:“lc.exe”以代码 -1 退出的主要内容,如果未能解决你的问题,请参考以下文章

错误 MSB6006:“midl.exe”退出,代码为 2026

当代码在 Visual Studio C++ 中正常工作时出现 MSB6006 错误

error MSB6006: “cmd.exe”已退出,代码为 3。

vs2017编译项目报错:Microsoft.Cpp.Clang.targets(212,5): error MSB6006 处理方法

vs2017编译项目报错:Microsoft.Cpp.Clang.targets(212,5): error MSB6006 处理方法

Xamarin Forms error MSB6006: “java.exe”已退出,代码为 2 解决办法