Wystąpił dziwny problem - nie mogę uruchomić programu Visual Studio ani uruchamiać prostych poleceń z wiersza polecenia, najwyraźniej z powodu zbyt długiej zmiennej PATH. Teraz, gdy na to patrzę, widzę, że wiele firm dodało swoje katalogi instalacyjne do zmiennej PATH.
Zastanawiałem się, dlaczego te firmy dodały swoje foldery do ścieżki (być może, aby ułatwić uruchamianie swoich programów?), Które są konieczne i które mogę usunąć. Jeśli usunę niektóre z nich, czy nie będę mógł uruchomić programów? ( Oto, co obecnie istnieje na ścieżce)
PATH
... Co prowadzi cię do podejrzeń, że to za długo? Czy VS rzuca jakiś błąd? Ponadto z jakiej wersji systemu Windows korzystasz?ping
. Wydaje się również, że nie jest to rzadkie w studiu wizualnym . Wspomniano również tutaj, że limit ścieżki PATH przy użyciu wiersza polecenia wynosi około 2000.The type initializer for 'Microsoft.VisualStudio.Platform.WindowManagement.WindowManagerService' threw an exception.
Odpowiedzi:
możliwe jest zmniejszenie nadmiernej ilości ścieżek w zmiennych środowiskowych PATH, wystarczy zapisać całą linię w notatniku, jako kopię zapasową, usunąć niektóre i przetestować.
Większość z nich istnieje, więc jeśli skrót nie ma pełnej ścieżki do „Celu”, jeśli „Początek w” nie jest ustawiony poprawnie w skrócie lub uruchomienie jest dziwne, program i jego części i elementy są zawsze znaleziony. W większości sytuacji jest bezpieczny. Nadal będziesz chciał w pełni przetestować użycie dowolnego programu, który usunąłeś jego ścieżki.
Jest to również bardzo przydatne dla osób, które wpisują polecenia w CMDprompt, nawet bez dysku CD, komputer będzie skanował każdą lokalizację, dopóki program o tej nazwie nie zostanie znaleziony i uruchomiony. Lub dowolne inne polecenie o tej samej nazwie :-)
Ten zestaw ścieżek WAS (kotwiczący) był ograniczony do mniej niż 255 znaków (lub 260), które zmieniły się kiedyś na 1024 jakiś czas temu, a następnie zostały załatane z powrotem w erze server'03, aby obsłużyć 2048, i podobno mógł obsłużyć 8096 w niektórych systemach, nawet dawno temu.
Rzeczywiste odkryte dziś ograniczenia, na które napotykają ludzie, znajdują się w CMDprompt, który ma limit długości ciągu poleceń, który obejmuje rozszerzanie zmiennych i ścieżek.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682653(v=vs.85).aspx tutaj Microsoft mówi:
W tej lokalizacji ^ wskazują lokalizację rejestru, która zawiera ścieżki systemowe.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment
Musisz tam przeczytać resztę.Po rozszerzeniu CMDprompt i ograniczenie partii wynosi 2048 znaków i mówi się, że jest czterokrotnie wyższe w przypadku nowszych systemów (wymaga cytowania, ponieważ ludzie tego nie widzą)
Zobacz także http://support.microsoft.com/kb/830473 , w którym omówiono wiersz polecenia i długość partii dla starszych systemów.
Aby upewnić się, że wpisy są tam poprawne, Wiki ma do powiedzenia:
http://en.wikipedia.org/wiki/Environment_variable
Posiadanie tam wszystkich dodatkowych ścieżek spowalnia pewne rzeczy, ponieważ jest zmuszony szukać tych wszystkich miejsc, zanim się poddaje. Używanie pełnych ścieżek za każdym razem, gdy wywoływanie elementów pliku będzie zawsze szybsze, nawet podczas grupowania lub korzystania z polecenia CMD.
Używanie starych konwencji DOS jak 8.3 jest jednym ze sposobów zmniejszenia rozmiaru, ta partia Batch /programming//a/20362922 działa dobrze. pamiętaj (ponownie) o utworzeniu kopii zapasowej oryginalnego ciągu. Zobacz także inne możliwe rozwiązania tego pytania.
Oto jak wygląda mój, było gorzej.
% SystemRoot% \ system32;% SystemRoot%;% SystemRoot% \ System32 \ Wbem;% SYSTEMROOT% \ System32 \ WindowsPowerShell \ v1.0 \; C: \ Program Files (x86) \ QuickTime \ QTSystem \
Rzuciłbym szybki czas w mgnieniu oka, a programy AMD umieściły tam przedłużyć ścieżkę, rzucił ją, Adobee miał jedną, żadna z nich nie miała znaczenia dla standardowych metod skrótów / ikon GUI. Wiele rzeczy można usunąć, a następnie przetestować wszystkie funkcje. Jeśli wywołujesz różne rzeczy, wpisując polecenie CMD, usunięcie tych ścieżek nie będzie działać.
źródło
Na mojej ścieżce mam kilka zmiennych środowiskowych związanych z programowaniem, z których wszystkie są ważne.
Powyższe rozwiązanie nie działałoby dla mnie, więc wybrałem połączenia katalogów :
C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\
)Wykonanie tego na 15 ścieżkach zmniejszyło moją ŚCIEŻKĘ z 2045 do 1285 znaków.
Może to być problem, gdy w końcu odinstalujesz rzeczy ze swojego komputera, ponieważ skrzyżowania pozostaną tam na ścieżce i będziesz musiał je wyczyścić ręcznie.
źródło
Podczas gdy maksymalne dopuszczalne na ścieżce jest znacznie dłuższe, znalazłem w autorytatywnych odpowiedziach na przepełnienie stosu w tym temacie (i referencjach Microsoft), które stwierdzają, że maksymalna rozszerzona wartość ścieżki wynosząca 2048 bajtów będzie działać i cokolwiek dłuższego spowoduje to problemy. Przez „rozwinięty” rozumiem, że wszelkie zmienne oznaczone ogranicznikami% będą miały wstawione wartości, aby stały się wartością rozwiniętą, a całkowita rozszerzona długość nie może przekraczać 2048 bajtów. Zauważyłem, że rodzaje problemów, które powoduje (od Windows 7) to:
Osobiście polecam inne systemy operacyjne oprócz Windows, ale jeśli utkniesz na nim, musisz spędzić godziny na usuwaniu wpisów ścieżki, testowaniu, aby upewnić się, że nic nie psuje, i sprowadzić wartość ścieżki do 2048 bajtów.
źródło