2014-04-10 23 views
20

Kiedy uruchomić mój TeamCity zbudować z jedynym krokiem build jest typu biegacz Visual Studio (SLN), pojawia się następujący błąd:msbuild Błąd MSB4025 w TeamCity kompilacji kroku dla Visual Studio

C:\TeamCity\buildAgent\work\4978ec6ee0ade5b4\Test\Code\Test.sln(2, 1): error MSB4025: The project file could not be loaded. Data at the root level is invalid. Line 2, position 1. 

To na dedykowany serwer CI z oprogramowaniem TeamCity Professional 8.1.1 (kompilacja 29939). Na tym serwerze istnieje kilka innych pomyślnie działających kompilacji.

Darem nieparzystym jest to, że ta sama kompilacja działa poprawnie na TeamCity na moim komputerze. Poszedłem pod an answer do podobnego pytania i skopiowałem określone foldery, ale to nie pomogło.

Jestem pewien, że plik projektu/rozwiązania nie jest nieważny, ponieważ oprócz kompilacji działającej w moim dev boxie, otworzyłem rozwiązanie w Visual Studio i zbudowałem je bez żadnych problemów.

Wszelkie sugestie?

Odpowiedz

20

Naprawiłem to.

Zajrzyj do pliku Test.sln dla tagów Project lub EndProject, które nie są zamknięte. Dla nas brakowało EndProject i złamało ono teamcity, ale nie było problemów w Visual Studio.

+2

Istnieją narzędzia do analizowania .sln plików. http: // stackoverflow. com/questions/707107/library-for-parsing-visual-studio-solution-files Użyłem https://slntools.codeplex.com/, każde z poleceń powie Ci, czego brakuje w twoim pliku .sln – fireydude

+0

Ja również zauważyłeś, że otrzymujesz znacznie bardziej przydatny komunikat o błędzie, jeśli spróbujesz uruchomić go przy pomocy MSBuild. – devlord

4

W naszym przypadku był to duplikat odwołania do projektu w pliku rozwiązania (spowodowany bliskim jednoczesnym zatwierdzeniem i automatycznym scaleniem).

5

Wygląda na to, że komunikat błędu TeamCity wystąpi dla dowolnej liczby przyczyn źródłowych. W moim przypadku problem wystąpił, ponieważ linia w sekcji GlobalSection (NestedProjects) odnosiła się do projektu Guid, który nie dotyczył żadnego projektu zdefiniowanego w pliku Solution.

Podobnie jak w poprzednim wpisie nie miałem żadnych problemów z budowaniem w Visual Studio. Dostałem tylko bardziej przydatny komunikat o błędzie, który pozwolił mi odkryć, jaki był prawdziwy problem, kiedy budowałem przy użyciu msbuild.

Zobacz inny przykład i https://therightjoin.wordpress.com/2014/07/04/msb4025-the-project-file-could-not-be-loaded-data-at-the-root-level-is-invalid-error-when-building-ssdt-project-in-teamcity, gdzie użycie msbuild pomogło zidentyfikować prawdziwy problem.

1

W moim przypadku, po połączeniu w pliku .sln było niedopasowanie linii pod

GlobalSection(NestedProjects) = preSolution 

{6B971E15-6B61-4AA8-9B93-9639C23269C3} = {9A14E7EF-3FA1-4B9A-B413-C550B3E5AC62} 

{54D14F01-D576-4DE6-9404-D21AD0DC4916} = {9A14E7EF-3FA1-4B9A-B413-C550B3E5AC62} 

... (was some extra entry here) 
... 

EndGlobalSection 

przekroju. Mówiąc czysto, po scaleniu dodano kilka dodatkowych linii. Tak więc, jeśli połączyłeś się, porównaj dwa pliki rozwiązania ręcznie. Możesz zacząć od całkowitych numerów linii w obu plikach.

1

W innym przypadku

Mieliśmy puste wiersze - więc upewnij się jakieś puste linie są usuwane!

Mam nadzieję, że to pomaga również innym!

1

Mam ten sam błąd z Jenkinsem. Okazuje się, że folder główny Jenkins został ustawiony na C: \ Program Files (x86) \ i nie miał prawa zapisu do katalogów bin i obj.

Błąd: błąd MSB4025: Nie można załadować pliku projektu. Dane na poziomie głównym są nieprawidłowe.

Uruchomiłem cmd jako Administrator i uruchomiłem: "C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe" "C: \ Program Files (x86) \ Jenkins \ workspace \ BuildBI_1 \ Raporty \ Test \ ReportsTests.SLN”/ t: Build/p: RunOctoPack = true

I dał mi wskazówki o nie jest w stanie napisać do bin i obj

Powiązane problemy