2009-03-21 16 views

risposta

1

Utilizziamo CC.NET & MSBuild per costruire e quindi anche per pubblicare nei nostri ambienti di sviluppo e di sviluppo, tuttavia non abbiamo la spinta live su CruiseControl.NET, eseguiamo manualmente MSBuild. Abbiamo solo pensato che sarebbe stato il modo di tentare con un pulsante per pubblicare dal vivo;) Ci sono volute probabilmente 2 o 3 revisioni per impostare correttamente il nostro sistema MSBuild. Ma ora tutto è in un unico file e tutto è basato su Target e Proprietà per fare tutto il lavoro. Circa 6 mesi fa, era quello che dovrebbe essere l'ultimo aggiornamento ed era una spinta multi-server, quindi siamo pronti per il potenziamento. Ora possiamo inviare qualsiasi combinazione di parti a qualsiasi combinazione di server. Quindi se vogliamo 5 server di database, 3 server contenet e 2 server web abbiamo questa capacità. Non c'è bisogno di usare nient'altro. MSBuild può farlo.

+0

Stai eseguendo CC.Net sul tuo ambiente di staging? – Ryu

+0

Non su di esso, ma viene pubblicato nell'ambiente stage utilizzando MSBuild. – Alex

+0

Stai solo pubblicando un sito web, o hai bisogno di installarti o fare qualcos'altro? – Ryu

3

Uso MsBuild per la compilazione e parte del processo di generazione esegue Wix per creare un programma di installazione (MSI) che viene utilizzato per la distribuzione in produzione.

0

Uso MSBuild per creare un'applicazione client/server abbastanza grande. Uso InstallShield 2008 per creare un set di installazione client e server separato.

Aggiungendo un target personalizzato nel processo di compilazione è possibile combinare la creazione degli installer nella build.

Si consiglia di creare e testare la build e l'installazione separatamente, prima di tentare di integrare i due.

1

ho creato un sistema di distribuzione in cui un coordinatore centrale può:

- identify the right target server for a given component (e.g Windows service goes to a given server, web services go to another, etc.) 
- perform a PsExec of a deployment MSBuild script on the target server 
- the deployment MSBuild script is responsible for: 
    a) downloading the right component package (in my case a .zip) 
    b) backing up previous versions of the component 
    c) extracting the package to the right place 
    d) tailoring the installation steps to the type of component to deploy (e.g. needs to perform an Exec task of installutil.exe on a Windows service) 
    e) logging the result of the deployment 

Questo sistema è costruito utilizzando un mix di:

- core MSBuild tasks 
- [Tigris MSBuild community tasks][1] 
- [MS SDC tasks][2] 
- and custom tasks 

Il sistema ci permette di eseguire una diffusione sistematica delle applicazioni complesse attraverso ambienti partizionati (ad es. DEV, QA, UAT, ecc.) costituiti da server virtuali.

0

So che questa è una vecchia questione ... ma ...

Attualmente sto usando MSBuild con MSBuild Extension Pack (http://msbuildextensionpack.codeplex.com) per eseguire l'intera distribuzione. La parte del database viene gestita con lo strumento da riga di comando del database VS (vsdbcmd.exe - http://msdn.microsoft.com/en-us/library/dd193283.aspx). Quel Extension Pack è piuttosto sorprendente e mi consente di creare siti Web, pool di app, servizi Windows, aggiornare la configurazione e molto altro.

Ho anche installato agenti di Team City sui server di prova, quindi posso eseguire il deployment come parte di una catena di build (introdotto nella versione 7 di Team City). Gestire lo script MSBuild è estremamente semplice da Team City.

0

Ho usato MSBuild, ora sto usando PowerShell. MSBuild è una lingua di costruzione. È doloroso scrivere in. Ci sono molte cose che volevo fare in esso che fossero difficili e talvolta impossibili.

Nell'ultimo anno, ho creato un modulo PowerShell in qualche modo equivalente a MSBuild Extension Pack chiamato Carbon.

Incoraggio fortemente tutti gli utenti a imparare e utilizzare PowerShell.

Problemi correlati