Ho un progetto che stava costruendo bene in VS 2008, e poi abbiamo installato e iniziato a usare TFS Build, e poi ci siamo trasferiti in TFS 2010 Tutto andava ancora bene e si stava sviluppando correttamente (dopo aver implementato il nostro nuovo processo di build che rendeva tutto molto bello con un'inizializzazione di avvio con un solo clic da qualsiasi client Visual Studio 2010 remoto). Non è stato necessario installare Visual Studio su Build Agent. Sto cercando molto difficile (molto duro) di non installare Visual Studio sul di compilazione perché la mia comprensione è che non è necessario, e non siamo in licenza per l'installazione su una macchina non-sviluppo.Come costruire un progetto VS2010 MakeFile (vcxproj) con TFS Build (No VS 2010)
Ora ho provato ad aggiornare la soluzione a VS 2010, scegliendo ancora .NET 3.5 perché è un assembly destinato alle procedure CLR di SQL Server e SQL Server non supporta ancora .NET 4.0. Ma semplicemente non riesco a crearlo ulteriormente con TFS Build. Non riesco a ottenere un messaggio di errore coerente da TFS Build e da una riga di comando di MS Build, ma penso che abbia qualcosa a che fare con Microsoft.Cpp.Targets che non si trovano in C: \ Programmi \ MSBuild \ perché non ho installato Visual Studio. Ho installato Microsoft Windows SDK 7.1 in modo da poter eseguire gli strumenti .NET 4.0 SDK come svcutil per altri progetti .NET 4.0, ma nulla sembra installare ciò che questa build desidera. La build errore di TFS dà me è:
C: \ TFSBld [...] \ GenerateLanguage \ GenerateLanguage.vcxproj (46,3): l'errore MSB4019: il progetto importato "C: \ Microsoft.Cpp .Default.props "è stato non trovato. Confermare che il percorso nella dichiarazione è corretto, e che il file esiste sul disco.
E quando si fa clic su tale errore mi ci vuole a questa riga nel file vcxproj:
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
Tutto quello che ho davvero bisogno di fare in questo progetto è gestito resgen per generare file di risorse da resx e li compili in gruppi satellite. Io sto usando un accumulo makefile per fare questo, in esecuzione manualmente resgen (credo che fosse perché non riesco a trovare un modo per compilare assemblee satellitare come soluzione stand-alone in altro modo), e quindi compilare chi in una DLL (I non ricordo come funzionasse ora, ma penso che sia stato eseguito manualmente AL.exe per compilare file DLL da file di risorse). Quindi, in pratica, ho solo bisogno di eseguire le righe di comando per costruire questo progetto, e non riesco a trovare un modo ragionevole per farlo senza buttare giù l'intero progetto e modificare lo script di compilazione TFS per eseguire una serie di linee di comando hard-coded anziché. Deve esserci un modo migliore.
Sono stato a questo tutto il giorno, e ho provato a scrivere il mio file .target e le schede delle proprietà .xml per prendere il posto del file standard, ma è un modo sopra la mia testa. Ho provato semplicemente a eliminare le righe, ma MSBuild si lamenta che non esiste un obiettivo "Build". Ho provato ad aggiungere un dummy al file vcxproj, ma non sembra che abbia eseguito i passaggi pre- e post-build in cui è stato eseguito tutto il lavoro.
Sembra che questa domanda abbia già avuto risposta qui: http://stackoverflow.com/questions/3043294/how-to-build-a-vs2010-c-project-on-a-buildserver Qual è il modo corretto per aggiornare/rimuovere questa domanda? – BlueMonkMN