2012-08-10 104 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