无法运行LC.exe

在编译时,我收到LC.EXE的错误

The specified task executable "LC.exe" could not be run. The filename or extension is too long

编译unit testing项目时会发生此错误。 在我看过的google技巧中,没有任何效果。

  • 我设置为Target framework =“.NET Framework 4”而不是客户端配置文件。

这从今天开始。 源控制历史中几乎没有任何东西。 这些更改都与AssemblyInfo.cs ,其中第三方实用程序会增加我们的版本#。

UPDATE
查看我的输出窗口,对LC.EXE的命令行调用是巨大的

CompileLicxFiles:
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools\LC.exe /target:BuildAll.Tests.dll /complist:Properties\licenses.licx /outdir:obj\Debug\ /i:C:\

有100个/i参数…

有MS支持解决方法:

在构建项目时,每次出现此错误时都要从项目中删除许可证文件,只需删除许可证文件即可

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

有同样的问题。 对于Lc.exe,会生成一个命令行,这个命令行最多可以限制在32k左右。 在此命令中,通常所有引用都使用完整路径编写。

所以如果你有很多参考文献,你可能会遇到麻烦。

您可以执行以下操作: – 删除未使用的引用 – 确保不引用间接依赖项。 请改为使用您可以为程序集定义的提示路径。 – 缩短放置引用的路径 – 您可以创建一个虚拟驱动器以将refs放在那里以获得可能的短路参考路径(例如Z:\ my.dll)

我在文件licenses.licx上将属性Build Action的值从EmbeddedResource更改为None 。 它解决了这个问题。

我今天遇到了一个问题,当我将引用的路径更改为更长的路径时,它得到了解决。 例如,我最初把它放在mydocuments\user\...\...\.. 。 但当我改变路径c:\dlls\ ,它就像一个魅力。 希望有所帮助。

我对文件LC.exe有一个不好的问题,一切都是因为我使用的组件是在网络驱动器(G :)中,从那个位置我永远无法编译可执行文件。 我终于通过在Internet选项中添加站点内部网之间的网络驱动器的IP地址来解决。

我使用了本博文中提到的命令行实用程序“Subst”来解决我的LC.exe问题。

  1. 为您的构建打开正常或更高的详细程度。
  2. 在“输出”窗口中,检查正在执行LC任务的行。 请注意,将有许多/ i参数与其他二进制文件的路径。
  3. 找到一个或多个可以使用“Subst”的路径来帮助缩短路径,以帮助减少传递给“LC.exe”的所有参数的总长度。
  4. 接下来,在Visual Studio中打开问题项目的属性窗口,然后选择“引用”选项卡,然后添加使用Subst定义的新驱动器。

建立项目。

请记住,Subst不会通过重启持续存在。