2014-04-10 10 views
20

Quando eseguo il mio TeamCity costruito con l'unico passaggio di generazione essendo di tipo corridore Visual Studio (SLN), ottengo il seguente errore:MSBUILD Errore MSB4025 in fase TeamCity generazione per 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. 

Questo è in un server CI dedicato che esegue TeamCity Professional 8.1.1 (build 29939). Ci sono molti altri build con successo su questo server.

Il bit dispari è che la stessa build viene eseguita correttamente su TeamCity sulla mia macchina di sviluppo. Ho seguito an answer in una domanda simile e ho copiato le cartelle specificate, ma non è stato di aiuto.

Sono sicuro che il file di progetto/soluzione non è valido perché oltre alla build in esecuzione sulla mia casella di sviluppo, ho aperto la soluzione in Visual Studio e l'ho creata senza problemi.

Qualche suggerimento?

risposta

20

Ho appena risolto questo.

Cercare all'interno del file Test.sln per i tag Project o EndProject che non sono chiusi. Per noi, mancava l'EndProject e si è rotto su teamcity, ma nessun problema in Visual Studio.

+2

Ci sono strumenti per l'analisi di file .sln:. http: // StackOverflow. it/questions/707107/library-for-parsing-visual-studio-solution-files Ho usato https://slntools.codeplex.com/, qualsiasi comando ti dirà cosa manca dal tuo file .sln – fireydude

+0

I ho notato che ricevi un messaggio di errore molto più utile se provi ad eseguirlo con MSBuild. – devlord

4

Nel nostro caso, si trattava di un riferimento di progetto duplicato nel file della soluzione (causato da commit quasi simultanei e un'unione automatica).

5

Sembra che il messaggio di errore di TeamCity si verifichi per qualsiasi numero di cause principali. Nel mio caso il problema si è verificato perché una linea all'interno della sezione GlobalSection (NestedProjects) si riferiva a un Guid di progetto che non si riferiva a nessun progetto definito nel file della soluzione.

Come nel post precedente, non ho riscontrato problemi nella creazione di Visual Studio. Ho ricevuto solo un messaggio di errore più utile che mi ha permesso di scoprire quale fosse il vero problema quando ho creato l'utilizzo di msbuild.

Vedere 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 per un altro esempio e dove l'utilizzo di msbuild ha aiutato a identificare il vero problema.

1

Nel mio caso, dopo la fusione, nel file di .sln, è stata una mancata corrispondenza di linee sotto

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 

sezione. In parole chiare, dopo l'unione sono state aggiunte alcune linee aggiuntive. Quindi, se hai unito, per favore confronta due file di soluzione manualmente. È possibile iniziare con numeri di linea totali in entrambi i file.

1

In un altro caso

abbiamo avuto un righe vuote - in modo da assicurarsi che tutte le righe vuote vengono rimosse!

Spero che questo aiuti anche qualcun altro!

1

Ho ricevuto lo stesso errore con Jenkins. Risulta che la cartella radice di Jenkins era impostata su C: \ Programmi (x86) \ e non aveva accesso in scrittura alle directory bin e obj.

Errore: errore MSB4025: impossibile caricare il file di progetto. I dati al livello principale non sono validi.

Ho lanciato cmd come amministratore e ho eseguito questo: "C: \ Programmi (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe" "C: \ Programmi (x86) \ Jenkins \ workspace \ BuildBI_1 \ rapporti \ test \ ReportsTests.SLN"/ t: Costruire/p: RunOctoPack = true

E che mi ha dato indizi di non essere in grado di scrivere a bin e obj

Problemi correlati