2009-10-26 14 views
5

Usiamo Make per compilare il nostro prodotto, che include, C, C++, Java e un mucchio di altri bit e pezzi. Per quanto possibile, abbiamo tutti gli strumenti necessari per compilare l'intero oggetto controllato nel controllo del codice sorgente, per eliminare le dipendenze locali e garantire la coerenza tra le macchine di sviluppo.Sistema di compilazione autonomo per progetti Visual Studio

Recentemente abbiamo aggiunto alcuni componenti scritti in C# utilizzando Visual Studio e vorrei adottare un approccio simile con le soluzioni di Visual Studio. Shelling out to devenv non è una buona opzione. Chiamare direttamente csc.exe (come ho fatto prima di usare Nant) richiederebbe di tenere traccia delle dipendenze dei file nello script di build, che preferirei semplicemente lasciare fare alla soluzione di Visual Studio.

MSBuild sembra una buona scommessa, anche se la sua posizione predefinita in %windir%\Microsoft.NET\Framework\[version]\ mi rende preoccupati per la variabilità tra le macchine, sia con la [versione] nel percorso e il fatto che vedrete entrambi "quadro" e "Framework64" le directory. Non mi dispiacerebbe avere il requisito che tutti gli sviluppatori abbiano installato qualsiasi versione di .NET framework, ma temo che la tua v3.5 potrebbe non essere uguale alla mia.

Qualcuno ha una soluzione a questo che gli piace? Hai provato qualcosa che davvero non ti è piaciuto?

risposta

6

MSBuild è sicuramente l'opzione di attrito più basso. Diverse versioni di fx non sono un grosso problema in fase di costruzione: se si sta utilizzando qualcosa di importante da una versione fx più alta di quella installata, non verrà costruita. L'ultimo posto in cui mi trovavo, abbiamo creato un enorme sistema di costruzione multi-ambiente con NAnt come base, ed è stato collegato a MSBuild con le attività MSBuild di NAnt. MSBuild va bene da solo se stai facendo solo cose MS, ma abbiamo avuto un sacco di cose che MSBuild non supportava nativamente, da qui il wrapper NAnt.

+0

Grazie a tutti per le risposte. - Eric –

+0

Che cos'è la "versione fx"? –

0

MSBuild è lo strumento giusto per questo lavoro. Basta abbinare la versione del framework alla versione del framework in bundle con il Visual Studio che si sta utilizzando.

32-bit contro 64-bit non dovrebbe importare, non penso - Sono abbastanza sicuro che entrambe le edizioni a 32-bit e 64-bit di possono eseguire il cross-compilazione sull'altra piattaforma. Il file di progetto MSBuild (*. * Proj XML file) dovrebbe contenere tutto ciò di cui MSBuild ha bisogno per creare la tua applicazione.

1

Sono d'accordo con tutti gli altri. Per semplificare, basta fare il vsvars.bat (il file batch che è il prompt dei comandi di Visual Studio) parte del tuo script di build, e poi MSBuild funzionerà.

0

Usiamo Nant per guidare msbuild. Se sei preoccupato per le diverse versioni del framework, in particolare i service pack, usa FxCop per verificare che non stai facendo in modo che le dipendenze impreviste si insinuino. I dettagli sono in this answer.

Problemi correlati