Co oznacza ten komunikat o błędzie? Co mogę zrobić, aby rozwiązać ten problem?
AssemblyInfo.cs zakończono z kodem 9009
Problem prawdopodobnie występuje w ramach etapu po kompilacji w rozwiązaniu .NET w Visual Studio.
.net
visual-studio
Anthony Mastrean
źródło
źródło
Odpowiedzi:
Czy próbowałeś podać pełną ścieżkę polecenia działającego w poleceniu zdarzenia przed lub po kompilacji?
Wystąpił błąd 9009 z powodu
xcopy
polecenia zdarzenia po kompilacji w programie Visual Studio 2008.Ale w moim przypadku było to również sporadyczne. Oznacza to, że komunikat o błędzie utrzymuje się do momentu ponownego uruchomienia komputera i znika po ponownym uruchomieniu komputera. Powraca po jakimś zdalnie powiązanym problemie, który muszę dopiero odkryć.
Jednak w moim przypadku podanie polecenia z pełną ścieżką rozwiązało problem:
Zamiast po prostu:
Jeśli nie mam pełnej ścieżki, po ponownym uruchomieniu działa przez chwilę, a następnie zatrzymuje się.
Również, jak wspomniano w komentarzach do tego postu, jeśli w pełnej ścieżce znajdują się spacje , to wokół polecenia potrzebne są znaki cudzysłowu . Na przykład
Zauważ, że ten przykład w odniesieniu do spacji nie jest testowany.
źródło
"$(SolutionDir)packages\NUnit.2.5.10.11092\tools\"nunit-console "$(TargetPath)"
) rozwiązało to.PATH
zmienna środowiskowa jakoś zginie? Od czasu do czasu pojawia się ten błąd. Mamnpm install
konfigurację jako zdarzenie przed kompilacją i początkowo działa (zakładam, że wszystko jest skonfigurowane), ale potem losowo przestanie działać w ciągu dnia (ogólnie przy przełączaniu między rozwiązaniami / gałęziami, które wierzę) i nie będzie już dłużej wiedzieć onpm
. Ponowne uruchomienie VS „naprawia” to ... co oznacza, że mojaPATH
konfiguracja jest prawidłowa, ale wygląda na to, że VS wstaje. Gdyby istniał sposób na przeglądanie zmiennych env od wewnątrz VS, mógłbym to potwierdzić.%systemroot%\System32\xcopy ...
Kod błędu 9009 oznacza, że nie znaleziono pliku błędu. Wszystkie podstawowe przyczyny zamieszczone w odpowiedziach tutaj są dobrą inspiracją, aby dowiedzieć się, dlaczego, ale sam błąd po prostu oznacza złą ścieżkę.
źródło
Dzieje się tak, gdy brakuje niektórych ustawień środowiska do korzystania z narzędzi Microsoft Visual Studio x86.
Dlatego spróbuj dodać jako pierwsze polecenie w swoich krokach po kompilacji:
W przypadku programu Visual Studio 2010:
Jak wspomniano w komentarzach @FlorianKoch, do VS 2017 użyj:
Powinien być umieszczony przed każdym innym poleceniem.
Ustawi środowisko do używania narzędzi Microsoft Visual Studio x86.
źródło
call "$(DevEnvDir)..\Tools\vsvars32.bat"
? DziękiPath
zmiennej środowiskowej. Sprawdź okno Output, aby uzyskać więcej informacji."$(DevEnvDir)..\Tools\VsDevCmd.bat"
Najprawdopodobniej masz miejsce na wynikowej ścieżce.
Możesz obejść ten problem, podając ścieżki, umożliwiając w ten sposób spacje. Na przykład:
źródło
Miał tę samą zmienną po zmianie zmiennej PATH z Zmiennych środowiskowych w Win 7. Powrót do ustawień domyślnych pomógł.
źródło
Wystąpił błąd 9009, gdy mój skrypt zdarzenia po kompilacji próbował uruchomić plik wsadowy, który nie istniał w podanej ścieżce.
źródło
Powodowałem ten błąd, kiedy zredagowałem moją zmienną środowiskową Path. Po edycji przypadkowo dodałem
Path=
na początku ciągu ścieżki. Przy takiej zniekształconej zmiennej ścieżki nie mogłem uruchomić XCopy w wierszu poleceń (nie znaleziono polecenia lub pliku nie znaleziono), a Visual Studio odmówił uruchomienia kroku po kompilacji, powołując się na błąd o kodzie 9009.XCopy zwykle znajduje się w C: \ Windows \ System32. Gdy zmienna środowiskowa Path pozwoliła XCopy na rozwiązanie w wierszu poleceń DOS, Visual Studio dobrze zbudowało moje rozwiązanie.
źródło
Mój dokładny błąd to
The command "iscc /DConfigurationName=Debug "C:\Projects\Blahblahblah\setup.iss"" exited with code 9009.
9009 oznacza, że plik nie został znaleziony, ale tak naprawdę nie mógł znaleźć części polecenia „iscc”.
Naprawiłem to, dodając
";C:\Program Files\Inno Setup 5 (x86)\"
do systemowej zmiennej środowiskowej"path"
źródło
Jeśli skrypt faktycznie robi to, co powinien, i to tylko Visual Studio denerwuje cię w związku z błędem, który możesz po prostu dodać:
do końca skryptu.
źródło
Sprawdź pisownię. Próbowałem zadzwonić do pliku wykonywalnego, ale nazwa miała niepoprawną pisownię i dała mi
exited with code 9009
wiadomość.źródło
W moim przypadku musiałem najpierw „CD” (zmienić katalog) do właściwego katalogu, przed wywołaniem polecenia, ponieważ plik wykonywalny, który wywoływałem, był w katalogu projektu.
Przykład:
źródło
Kolejny wariant:
dzisiaj dzwonię do interpretera Pythona z crona w win32 i biorę ExitCode (% ERRORLEVEL%) 9009, ponieważ konto systemowe używane przez crona nie ma ścieżki do katalogu Pythona.
źródło
Problem w moim przypadku wystąpił, gdy próbowałem użyć polecenia w wierszu polecenia dla zdarzenia po kompilacji w mojej bibliotece klas testowych. Gdy używasz takich znaków cudzysłowu:
lub jeśli używasz konsoli:
To rozwiązało problem.
źródło
Odpowiedź tfa została odrzucona, ale w rzeczywistości może powodować ten problem. Dzięki hanzolo zajrzałem do okna wyników i znalazłem:
Po uruchomieniu
npm install -g gulp
przestałem otrzymywać ten błąd. Jeśli pojawia się ten błąd w programie Visual Studio, sprawdź okno wyjściowe i sprawdź, czy problem jest nierozłączną zmienną środowiskową.źródło
Upewnij się także, że w oknie edycji zdarzenia po kompilacji w projekcie nie ma żadnych podziałów linii. Czasami skopiowanie polecenia xcopy z Internetu, gdy jest ono wieloliniowe i wklejenie go do VS spowoduje problem.
źródło
Dodałem „> myFile.txt” na końcu wiersza w kroku przed kompilacją, a następnie sprawdziłem plik pod kątem rzeczywistego błędu.
źródło
Dla mnie było mało miejsca na dysku i oczekiwano, że pliki, których nie można zapisać, pojawią się później. Inne odpowiedzi wspomniały o brakujących plikach (lub błędnie nazwanych / niepoprawnie przywoływanych plikach według nazwy) - ale główną przyczyną był brak miejsca na dysku.
źródło
Dla mnie stało się to po aktualizacji pakietów nuget z jednej wersji PostSharp do następnej w dużym rozwiązaniu (~ 80 projekt). Mam błędy kompilatora dla projektów, które mają polecenia w zdarzeniach PreBuild.
„cmd” nie jest rozpoznawane jako polecenie wewnętrzne lub zewnętrzne, program operacyjny ani plik wsadowy. C: \ Program Files (x86) \ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets (1249,5): błąd MSB3073: Polecenie „cmd / c C: \ GitRepos \ main \ ServiceInterfaces \ DEV.Config \ PreBuild.cmd ServiceInterfaces ”zakończony kodem 9009.
Zmienna PATH została uszkodzona i stała się zbyt długa z wieloma powtarzanymi ścieżkami związanymi z PostSharp.Patterns.Diagnostics. Kiedy zamknąłem Visual Studio i otworzyłem go ponownie, problem został rozwiązany.
źródło
Nie znaleziono jeszcze innego wariantu pliku z powodu spacji na ścieżce. W moim przypadku w skrypcie msbuild. Musiałem użyć stylu HTML & quot; ciągi znaków w poleceniu exec.
źródło
Podobnie jak inne odpowiedzi, w moim przypadku było to spowodowane brakującym plikiem. Aby dowiedzieć się, jaki jest brakujący plik, możesz przejść do okna wyjściowego, a natychmiast pokaże ci, co zaginęło.
Aby otworzyć okno wyjściowe w Visual Studio:
źródło
Naprawiłem to po prostu ponownie uruchamiając Visual Studio - właśnie uruchomiłem
dotnet tool install xxx
w oknie konsoli, a VS nie wybrał jeszcze nowych zmiennych środowiskowych i / lub ustawień ścieżki, które zostały zmienione, więc szybki restart rozwiązał problem.źródło
Jest to dość podstawowe, miałem ten problem i zawstydzające proste niepowodzenie.
Zastosowanie aplikacji Argumenty wiersza poleceń, usunąłem je, a następnie dodałem ponownie. Nagle nie udało się zbudować projektu.
Visual Studio -> Właściwości projektu -> sprawdź, czy używasz karty „Debuguj” (nie karty „Kompiluj zdarzenia”) -> Argumenty wiersza poleceń
Użyłem obszaru tekstowego i Post / Pre-build, co w tym przypadku było nieprawidłowe.
źródło
Moje rozwiązanie było po prostu proste: czy próbowałeś go wyłączyć i włączyć ponownie? Ponownie uruchomiłem komputer i problem zniknął.
źródło
Zetknąłem się również z tym
9009
problemem, gdy miałem do czynienia z sytuacją zastąpienia.Zasadniczo, jeśli plik już istnieje i nie określono
/y
przełącznika (który automatycznie zastępuje), ten błąd może wystąpić podczas uruchamiania z kompilacji.źródło
Zauważyłem, że z jakiegoś powodu zmienna środowiskowa% windir% czasami się kasuje. Dla mnie zadziałało ponowne ustawienie zmiennej środowiskowej windir na c: \ windows, restart VS i to wszystko. W ten sposób można uniknąć konieczności modyfikacji plików rozwiązania.
źródło
Przynajmniej w Visual Studio Ultimate 2013, wersja 12.0.30723.00, aktualizacja 3, nie można oddzielić instrukcji if / else z podziałem wiersza:
Pracuje:
nie działa:
źródło
Kolejny powód: jeśli zdarzenie przed kompilacją odwołuje się do ścieżki bin innego projektu i widzisz ten błąd podczas uruchamiania msbuild, ale nie Visual Studio, musisz ręcznie rozmieścić projekty w pliku * .sln (za pomocą edytora tekstu), aby że projekt, na który kierujesz wydarzenie, jest budowany przed projektem wydarzenia. Innymi słowy, msbuild używa kolejności, w której projekty są wymienione w pliku * .sln, podczas gdy VS używa wiedzy o zależnościach projektu. Zdarzyło mi się to, gdy narzędzie, które tworzy bazę danych, która ma być zawarta w wixproj, zostało wymienione po wixproj.
źródło
Myślę, że w moim przypadku na ścieżce były rosyjskie symbole (wszystkie projekty były w folderze użytkownika). Kiedy umieściłem rozwiązanie w innym folderze (bezpośrednio na dysku), wszystko stało się dobrze.
źródło
Moim rozwiązaniem było utworzenie kopii pliku i dodanie kroku do zadania kompilacji, aby skopiować mój plik na oryginał.
źródło
Musisz upewnić się, że zainstalowałeś glob na całym świecie
źródło