Domanda

So abbastanza per sapere che dobbiamo far distribuire la nostra applicazione con un'azione di un singolo utente. Tuttavia, non non so:

  1. Quali sono alcuni buoni strumenti da usare in un negozio .NET?
  2. Come gestite le modifiche alla configurazione per ciascuno dei vostri ambienti?

Qualcuno può indicarmi alcune buone risorse per l'integrazione continua. Mi piacerebbe vedere un po 'di teoria e una guida pratica passo passo.

Modifica
Ho bisogno di automatizzare una distribuzione web in questo momento; tuttavia, vorrei anche imparare a farlo per le app desktop.

È stato utile?

Soluzione

Ho scritto un post sul blog che può essere utile:

Progetti di distribuzione Web di Visual Studio

È vecchio di un anno e mezzo, ma ha parlato di alcuni nuovi (a quel tempo) modelli di progetto per VS e anche di un'utilità della riga di comando del team IIS chiamata MSDeploy. Sembravano davvero promettenti e sembravano ideali per il targeting di più configurazioni di build, la sincronizzazione di più server in una farm e un maggiore controllo sull'output effettivo della distribuzione del tuo sito Web.

Forse ormai anche le tecnologie sono maturate.

Altri suggerimenti

Abbiamo avuto un grande successo con XML di Windows Installer . Fondamentalmente, definisci i componenti che compongono la tua applicazione in XML e WiX lo trasforma in un pacchetto MSI. La documentazione è relativamente scarsa, ma il file CHM fornito combinato con fu di ricerca ti porterà lontano.

I pacchetti MSI possono accettare parametri di input per i valori di configurazione ed eseguire azioni per manipolare i file di configurazione dopo la distribuzione dell'applicazione. Ad esempio, " msiexec / i MyCustomPackage.msi SqlServer = SomeSQLBox " potrebbe distribuire l'applicazione Web e modificare la voce di configurazione per una casella SQL dipendente.

Visual Build Pro di Kinook è un ottimo strumento per la distribuzione con un clic. È facile da usare e ha molte funzionalità. L'ho utilizzato per anni. Naturalmente c'è anche NAnt, che non ho usato molto.

Per quanto riguarda la gestione delle modifiche alla configurazione, gestisco più file di configurazione con estensioni che indicano l'ambiente di distribuzione, quindi eseguo semplicemente una rinomina come passaggio all'interno del mio script di compilazione.

Ad esempio, se sto eseguendo la distribuzione su Test, potrei avere un file di configurazione chiamato Web.test.config, che viene automaticamente rinominato in Web.config dallo script build.

Ho scritto un post sul blog piuttosto dettagliato utilizzando TeamCity e progetti di distribuzione Web per automatizzare la creazione e la distribuzione come inizio qui:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

Ho quindi aggiunto a questo per mostrare l'aggiunta FTP

http: // www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

Un flusso di processo di base è piuttosto semplice:

  • Utilizzando un server build di teamcity che scarico dal mio repository SVN
  • Compilare e distribuire il sito in una cartella locale sul server di compilazione
  • Lancio un client FTP da riga di comando che supporta gli script chiamati
  • WinSCP utilizzando l'attività EXEC di MSBUILD (http://winscp.net/)
  • Carica tutti i contenuti dei miei siti
  • Avere [inserire bevanda] di scelta

Mi assicuro quindi di distribuire solo il trunk del mio repository SVN e di sviluppare e testare tutto in un ramo prima di unirmi, in questo modo vengono distribuiti solo gli oggetti testati. Aggiungi i test automatizzati al tuo ciclo di costruzione e avrai una partita fatta in paradiso.

Alcuni fantastici strumenti gratuiti per iniziare sono:

Vedo due domande diverse:

  • Per la distribuzione: la distribuzione ClickOnce dovrebbe farlo. Pubblica semplicemente la tua applicazione desktop accedendo a VS.net dal menu Build > Pubblicare. VS.net quindi compila una pagina Web e un setup.exe. Quando gli utenti con IE o Firefox e .net 3.5 SP1 fanno clic sul collegamento, viene eseguito immediatamente. ClickOnce gestisce anche l'aggiornamento per te e c'è una vasta API da sviluppare per esso.
  • L'integrazione continua è una cosa molto diversa. Ti suggerisco di cercare su Google CruiseControl.net e di scaricare e provare quante più risorse possibile. È fondamentalmente un server di build ma è possibile collegarlo con SVN, NUnit per i test e così via. Non consiglierei di acquistare un libro per un prodotto così volatile. È meglio scaricarlo e provare le cose.

CruiseControl.NET per la tua soluzione di integrazione continua. Per la distribuzione utilizzo un file di progetto MSBuild. Inoltre, conservo tutti i file di configurazione dei server. Passo su MSBuild attraverso i parametri una proprietà del server che dice a MSbuild quali valori di configurazione utilizzare e quindi completa la distribuzione. L'unica distribuzione che non può essere eseguita direttamente da CruiseControl è quella sui nostri server live. Lasciamo quella riga di comando MSBuild solo per non premere accidentalmente un pulsante, o così qualcuno con accesso al dashboard web CC.NET lo fa solo giocando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top