2012-08-10 123 views
7

在编译时我收到错误LC.EXELC.exe无法运行

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

当我编译我的单元测试项目,会出现此错误。在我看到的谷歌技巧中,没有任何工作。

  • 我设置为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参数...

+0

什么是'LC.exe'和它为什么在编译时运行? – jrummell 2012-08-10 16:59:51

+1

我认为当他们不想在社区发布时,LC.exe用于许可证项目。事实上,它将在汇编中嵌入公钥,并且只有其他拥有私钥的公司才能使用它@ jrummell – 2012-08-10 17:09:05

+0

我收到了同样的错误。看来我的项目中有太多的参考文献。当我添加“Microsoft.Sharepoint”时,它爆炸了。当我删除该引用时,它再次编译。 – Brain2000 2013-01-06 19:50:05

回答

2

也有同样的问题。 对于Lc.exe,生成一个命令行,这被限制在32k字节左右。 在这个命令中,通常所有的引用都是用它的完整路径写的。

所以如果你有很多参考文献,你可能会陷入困境。

有一些事情你可以做: - 删除未使用的引用 - 确保你没有引用间接的依赖。改为使用可为组件定义的提示路径。 - 缩短与参照路放置 - 您可以创建一个虚拟驱动器把裁判那里得到短路的可能的参考路径(例如Z:\ my.dll。)

0

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

+0

您的初始路径是否已完全解析(即'C:\ path \ to \ mydocuments \ user \ ...')? – 2013-03-05 23:58:02

0

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

-1

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

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

构建项目。

记住,Subst不会重新启动。

+1

欢迎来到SO。链接作为答案是最好的评论而不是答案。我建议编辑上面的答案,以便在一个地方添加主要部分。 – Syfer 2017-06-07 02:14:35