Necessità primer per un principiante msbuild [chiusa]
-
06-09-2019 - |
Domanda
Manteniamo un'applicazione di medie dimensioni finestre sviluppato in VB / C # .NET nel lavoro. Ancora oggi la costruzione e il processo di distribuire per questa applicazione è manuale. Sono determinato a rendere questo processo automatizzato utilizzando MSBuild su cui non ho conoscenza ancora oggi.
La nostra applicazione ha una semplice struttura costruttiva, set di progetti già raggruppati in quattro soluzioni (.sln) e solo bisogno di costruire quattro linfonodi sentinella in un ordine. E poi pubblicare un progetto (che è parte dell'ultima SLN da costruire) in una directory. Questo è tutto. Un semplice processo che è già consumando 30 minuti di tempo di costruzione manuale e sono abbastanza sicuro che questo può essere realizzato senza interferenze manuale utilizzando msbuild in atleast 1/4 esimo del tempo.
Tutti i miei obiettivi impostati bene, ho iniziato a cercare in giro per il web MSBuild risorse per realizzare il mio processo, ma possono essere alla ricerca intorno a molte cose mi confusi. Hai bisogno di un puntatore o una buona spiegazione su come avviare e da dove cominciare per la mia semplice scenario. Aiuto è molto apprezzato.
Soluzione
Questo suona come una sceneggiatura molto facile da scrivere. Anche un file batch farebbe:
msbuild \path\to\first.sln /p:Configuration=Release msbuild \path\to\second.sln /p:Configuration=Release msbuild \path\to\third.sln /p:Configuration=Release msbuild \path\to\fourth.sln /p:Configuration=Release call deploy
Naturalmente, molto meglio sarebbe avere un server in esecuzione, dicono CruiseControl.NET , che dà un'interfaccia web in stato di costruzione e la storia.
In MS Build, ci sono due principali punti di controllo per il chiamante: Il bersaglio e le sue proprietà. L'obiettivo è quello di compilare, le risorse, la compilazione, distribuzione, ecc Le proprietà di controllo come bersaglio che è costruito.
È possibile controllare la configurazione con il Configurazione di proprietà (vedi sopra). Se si apre il *. * Proj file, si noterà elementi PropertyGroup
. Questi sono impostabili tramite la riga di comando utilizzando l'ARG /p
.
Ecco le specifiche per i due argomenti:
/target:<targets> Build these targets in this project. Use a semicolon or a
comma to separate multiple targets, or specify each
target separately. (Short form: /t)
Example:
/target:Resources;Compile
/property:<n>=<v> Set or override these project-level properties. <n> is
the property name, and <v> is the property value. Use a
semicolon or a comma to separate multiple properties, or
specify each property separately. (Short form: /p)
Example:
/property:WarningLevel=2;OutDir=bin\Debug\
Altri suggerimenti
Ecco una buona guida che ha un sacco di grandi informazioni su MSBuild, Continuous Integration e CuriseControl.NET. Sicuramente un buon punto di partenza.