【问题标题】:The specified task executable "LC.exe" could not be run指定的任务可执行文件“LC.exe”无法运行
【发布时间】:2013-01-21 06:40:48
【问题描述】:

我正在使用 VS 2012 开发 SharePoint 2013 解决方案,该解决方案有一个 licx 文件。我收到编译时错误和警告。

错误:无法运行指定的任务可执行文件“LC.exe”。文件名或扩展名太长

警告:“LC”任务的命令行太长。超过 32000 个字符的命令行可能会失败。尝试通过将对“LC”的调用分解为多个调用来减少命令行的长度,每次调用的参数更少。

我试过 lc.exe.config 有<startup useLegacyV2RuntimeActivationPolicy="true"> 我还尝试将解决方案移至“C:\”,位于 Projects 文件夹的较早位置。

我仍然无法解决此错误。

【问题讨论】:

  • 似乎这与 Microsoft.SharePoint.dll 有关,如果我从项目中删除此引用,它会正确编译。但我不能没有 SharePoint API...
  • LC.exe could not be run的可能重复

标签: visual-studio-2012 sharepoint-2013 licenses.licx


【解决方案1】:

有 MS Support 解决方法:

当你构建项目时,从项目中删除许可证文件 每次遇到此错误,只需删除许可证文件

https://connect.microsoft.com/VisualStudio/feedback/details/779433/lc-exe-task-command-line-too-long

【讨论】:

  • 如果您要从另一个关于同一问题的问题中复制粘贴您的答案,请考虑一下“我应该在这个重复的问题上发布重复的答案,还是应该不回答而是标记这个问题作为重复” - 然后选择后者。尽量保持清洁,每一点都有帮助。
  • 如果许可证组件必须运行以授权第 3 方组件,例如,例如发布版本。
【解决方案2】:

通过创建指向您使用的特定 .NET 版本(在本例中为 4.5.2)的快捷方式,您将能够节省大量路径长度。以下是步骤;

  1. 以管理员身份运行命令行
  2. 在命令行中转到 C:\
  3. mklink /J net452 "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2"
  4. 转到 VisualStudio
  5. 打开项目属性
  6. 查看“参考”标签
  7. 点击“参考路径”按钮并添加路径“C:\net452”
  8. 重建项目

【讨论】:

    【解决方案3】:

    删除 licenses.licx 文件不是解决方案。如果您使用需要许可证的第三方控件,它将在运行时给您错误。

    LC.exe 将参数作为具有完整路径的许可证文件,如果参数太长,则会引发错误。

    所以保持文件名和路径较短的长度,它将编译和工作。

    【讨论】:

    • 同样,只有当您的解决方案足够小时,它才会起作用。使用具有 lc.exe 依赖组件的更大解决方案,您的基本路径将开始成为一个较小的因素。
    【解决方案4】:

    删除许可证文件对我没有帮助。我最终删除了解决方案资源管理器 -> 属性组下的“licenses.licx” Surly 有帮助

    【讨论】:

    • 不幸的是,这只是一种解决方法,而不是长期解决方案。 Microsoft 需要解决 lc.exe 程序的可扩展性问题。
    【解决方案5】:

    此问题已在 VS2017 中根据此 GitHub 签入修复:https://github.com/Microsoft/msbuild/commit/e49717c727c3cab4db466bcb0a5abb624a8156bb 我相信版本是完整发布版本是VS2017 Update 2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多