2012-08-10 22 views
7

Sulla compilation ricevo errori per LC.EXELC.exe non poteva essere eseguito

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

Questo errore si verifica quando compilo il mio progetto di test unità. Dei trucchi google che ho visto, niente ha funzionato.

  • Sono impostato su Target framework = ".NET Framework 4" non sul profilo client.

Questo è iniziato oggi. Non c'è quasi nulla nella cronologia del controllo sorgente. Le modifiche hanno a che fare con AssemblyInfo.cs dove un'utility di terze parti incrementa i nostri # di versione.

UPDATE
Guardando fuori dalla mia finestra di uscita la chiamata riga di comando per LC.EXE è ENORMI

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:\

C'è 100 di /i params ...

+0

Che cos'è 'LC.exe' e perché è in esecuzione sulla compilazione? – jrummell

+1

Penso che LC.exe sia utilizzato per il progetto di licenza quando non vogliono pubblicare nella comunità. Infatti, incorporerà la chiave pubblica in assembly e solo altre società che possiedono una chiave privata potranno usarlo @jrummell –

+0

Ho riscontrato lo stesso errore. Sembra che io abbia troppi riferimenti nel mio progetto. Quando ho aggiunto "Microsoft.Sharepoint" è esploso. Quando ho rimosso quel riferimento, è stato compilato di nuovo. – Brain2000

risposta

2

aveva lo stesso problema. Per Lc.exe viene generata una riga di comando che viene limitata a circa 32 caratteri k. In questo comando normalmente tutti i riferimenti sono scritti con theit fullpath.

quindi se hai molti riferimenti puoi metterti nei guai.

Ci sono alcune cose che puoi fare: - Rimuovi riferimenti inutilizzati - Assicurati di non fare riferimento a situazioni indirette. Utilizzare invece il percorso di suggerimento che è possibile definire per gli assiemi. - Si inserisce il percorso con i riferimenti - È possibile creare un'unità virtuale per inserire i riferimenti per ottenere il percorso di riferimento possibile in cortocircuito (ad esempio Z: \ my.dll)

0

Ho avuto un problema oggi e si è risolto quando ho cambiato il percorso del riferimento in un percorso meno lungo. Ad esempio, inizialmente l'ho inserito in mydocuments\user\...\...\... Ma quando ho cambiato il percorso a c:\dlls\, ha funzionato come un fascino. Spero possa aiutare.

+0

Il percorso iniziale è stato completamente risolto (ad esempio, 'C: \ percorso \ a \ mydocuments \ utente \ ...')? –

0

Ho avuto un brutto problema con il file LC.exe, tutto era dovuto al fatto che i componenti che ho usato erano in un disco di rete (G :) e da quella posizione non avrei mai potuto compilare t lui eseguibile. Ho finalmente risolto aggiungendo l'indirizzo IP del drive di rete tra siti intranet affidabili nelle opzioni internet.

-1

Ho utilizzato l'utilità della riga di comando "Subst" come menzionato in questo blog post per risolvere il mio problema con LC.exe.

  1. Attiva Verbosità normale o superiore per la tua build.
  2. Nella finestra Output, esaminare la riga in cui viene eseguito l'attività LC. Si noti che ci saranno molti/i parametri con percorsi ad altri binari.
  3. Trovare uno o più percorsi che è possibile utilizzare "Subst" per ridurre il percorso per ridurre la lunghezza totale di tutti i parametri passati a "LC.exe".
  4. Quindi, aprire la finestra delle proprietà del problema di progetto in Visual Studio e selezionare la scheda Riferimenti e quindi aggiungere le nuove unità definite con Subst.

Costruire il progetto.

Ricordare che Subst non persiste durante il riavvio.

+1

Benvenuti in SO. Collega come le risposte sono le migliori per i commenti e non le risposte. Suggerisco di modificare la risposta di cui sopra per aggiungere le parti principali in modo che siano in un unico punto. – Syfer

Problemi correlati