2012-08-10 23 views
7

Na kompilacji otrzymuję błąd dla LC.EXELC.exe nie można uruchomić

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

Ten błąd pojawia się, gdy mogę skompilować mój projekt testów jednostkowych. O trikach google, które widziałem, nic nie zadziałało.

  • Ustawiono opcję Target framework = ".NET Framework 4", a nie profil klienta.

To zaczęło się dzisiaj. Nie ma prawie nic w historii kontroli źródła. Wszystkie zmiany mają związek z AssemblyInfo.cs, w której narzędzie innej firmy zwiększa liczbę wersji.

UPDATE
Patrząc przez okno wyjściowe wywołanie z linii poleceń do LC.EXE jest OGROMNE

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

Jest 100 z /i params ...

+0

Co to jest "LC.exe" i dlaczego jest on uruchomiony podczas kompilacji? – jrummell

+1

Myślę LC.exe jest używany do projektu licencji, gdy nie chcą publikować w społeczności. W rzeczywistości będzie osadzony klucz publiczny w zespole i tylko inna firma posiadająca klucz prywatny może go używać @jrummell –

+0

Otrzymuję ten sam błąd. Wygląda na to, że mam zbyt wiele referencji w moim projekcie. Kiedy dodałem "Microsoft.Sharepoint", wybuchło. Kiedy usunąłem ten odnośnik, skompilowałem go ponownie. – Brain2000

Odpowiedz

2

miał ten sam problem. Dla Lc.exe generowana jest linia poleceń, która jest ograniczona do około 32k znaków. W tym poleceniu normalnie wszystkie odniesienia są zapisywane przy użyciu pełnej ścieżki.

, więc jeśli masz wiele referencji, możesz wpaść w kłopoty.

Jest kilka rzeczy, które możesz zrobić: - Usuń nieużywane referencje - Upewnij się, że nie odwołujesz się do pośrednich odpisów. Zamiast tego użyj ścieżki podpowiedzi, którą możesz zdefiniować dla złożeń. - Skróć ścieżkę z odniesieniami - Możesz utworzyć wirtualny dysk, aby umieścić refs, aby uzyskać zwartą ścieżkę odniesienia (np. Z: \ my.dll)

0

Miałem dzisiaj problem i został rozwiązany, kiedy zmieniłem ścieżkę odniesienia na mniej dłuższą ścieżkę. Na przykład początkowo umieściłem go w mydocuments\user\...\...\... Ale kiedy zmieniłem ścieżkę na c:\dlls\, zadziałało to jak urok. Nadzieja, która pomaga.

+0

Czy Twoja początkowa ścieżka została w pełni rozwiązana (tzn. 'C: \ ścieżka \ do \ pamięci \ użytkownik \ ...)? –

0

Miałem zły problem z plikiem LC.exe, wszystko było spowodowane tym, że użyte komponenty były w napędzie sieciowym (G :) iz tej pozycji nigdy nie mogłem skompilować on jest wykonywalny. W końcu rozwiązany przez dodanie adresu IP dysku sieciowego między witrynami intranet niezawodne w opcjach internetowych.

-1

Użyłem narzędzia wiersza poleceń "Subst", jak wspomniano w tym blogu post, aby rozwiązać mój problem z LC.exe.

  1. Włącz normalną lub wyższą szczegółowość dla swojej kompilacji.
  2. W oknie Dane wyjściowe sprawdź wiersz, w którym wykonywane jest zadanie LC. Zauważ, że będzie wiele/i parametrów ze ścieżkami do innych plików binarnych.
  3. Znajdź jedną lub więcej ścieżek, których możesz użyć "Subst", aby skrócić ścieżkę, aby zmniejszyć całkowitą długość wszystkich parametrów przekazywanych do "LC.exe".
  4. Następnie otwórz okno właściwości problemu projektu w Visual Studio i wybierz kartę Odniesienia, a następnie dodaj nowe napędy zdefiniowane przez Subst.

Zbuduj projekt.

Pamiętaj, Subst nie przetrwa przez ponowne uruchomienie.

+1

Witamy w SO. Link jako odpowiedzi jest najlepszy dla komentarzy, a nie odpowiedzi. Sugeruję edytowanie powyższej odpowiedzi, aby dodać główne części, tak aby była w jednym miejscu. – Syfer

Powiązane problemy