2009-10-27 10 views
5

Qualcuno può far luce su come ottenere Team Build 2010 beta 2 per inviare un progetto di database SQL al server SQL?Come: Distribuire il progetto del database SQL utilizzando Team System Build 2010 (beta 2)

In VSTS 2008 basta aggiungere i comandi di MSBuild con l'attributo target impostato su "deploy" nel file TFSBuild.proj, ma ho qualche problema a tradurlo nella nuova cosa xaml basata sul flusso di lavoro utilizzata nel 2010 .

Quello che sto cercando è come attivare l'effettiva distribuzione dei database stessi. Sta già generando bene gli script di distribuzione.

risposta

6

Per chi ancora cercando la risposta, utilizzare un processo che utilizza Invoke vsdbcmd.exe: http://msdn.microsoft.com/en-us/library/ff805001.aspx

+0

Grazie mille per la risposta! Mi ero perso quell'articolo e non avevo mai veramente risolto questo problema. –

+0

Sono solo io o è quasi impossibile quando si fa una compilazione notturna? –

+0

Per essere onesti, ho rinunciato all'uso del team build per distribuire i DB. Ho invece passato tutto il resto della notte per utilizzare un database di riferimento allegato a file SQL Express che manteniamo come parte del nostro processo di sviluppo; quando eseguiamo il check in del progetto DB, ci limitiamo ad usare lo schema compare per scrivere le modifiche al DB di riferimento. In questo modo possiamo usare i progetti di DB, assicurarci che essi "costruiscono" di notte, ma non devono lasciarsi andare alla deriva con la distribuzione del progetto DB. –

1

Ecco un esempio:

http://www.nablasoft.com/alkampfer/index.php/2009/10/06/deploy-a-database-project-with-tfs-build/

Può essere che si sta semplicemente manca il DeployToDatabase = true

+0

Sì, è esattamente come lo si fa ... in VS 2008 utilizzando Team Build 2008. Quello che mi serve sono informazioni su come fare lo stesso in tfs 2010, che ora utilizza un file di flusso di lavoro windows basato su xaml per controllare la build processi. –

+0

Ho dovuto modificare lo XAML (nell'editor XAML visivamente orribilmente lento della MS!) Per aggiungere "/ t: Build, Deploy" agli argomenti di msbuild. –

0

La cosa più vicina che ho trovato finora è this post da Jim Lamb (la Team Foundation PM presso Microsoft).

Qui parla vagamente di creare un file proj personalizzato e di modificare il modello di processo di build predefinito per richiamare il file proj.

Parla anche dell'utilizzo del modello di aggiornamento, che in precedenza avevo ignorato. Apparentemente il modello di aggiornamento può essere usato per invocare una definizione di build 2008. Preferisco non invocare e definire l'intera build basata sul file proj legacy, ma almeno è un'opzione.

Nessuno degli argomenti contiene informazioni sufficienti per apportare le modifiche necessarie, ma mi fornisce un punto di partenza ragionevole per alcune sperimentazioni future.

+0

Ho lo stesso problema. Hai mai una risposta? – aquinas

+0

No. Non ho mai trovato la risposta. Ho rimandato un aggiornamento fino al 2010 per RTM. Speriamo che il rilascio abbia più funzionalità per le distribuzioni o almeno un po 'più di documentazione e istruzioni per la personalizzazione del flusso di lavoro. –

1

c'è un'altra soluzione a questo problema se non hai bisogno di aggiornamento del database incrementale. Quindi se ricreare il database per ogni build è ok con te anche il seguente potrebbe funzionare.

Aggiungi un target deploy di file di progetto di database

Configurare le impostazioni di distribuzione per ‘My project settings’. Tali impostazioni verranno quindi utilizzate dal build server durante la creazione della soluzione. Quando si costruisce localmente, le impostazioni utilizzate saranno quelle di "My isolated development environment".

  1. nelle proprietà del progetto di database

Deploy azione deve essere ‘Create a deployment script (.sql) and deploy the database’; questo impedirà l'esecuzione dello script, lo creerà solo.

  1. file di progetto di database

Modificare il file di progetto di database (progetto di database tasto destro del mouse, selezionare Scarica, fare clic destro di nuovo, selezionare Modifica [ProjectName].dbproj) da

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 

Per

<Project DefaultTargets="Build;Deploy" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 

Quando il server Corporatura costruisce la soluzione contenente il progetto di database, aggiungendo gli obiettivi di default sarà anche distribuire il database. Questa build utilizzerà le impostazioni di distribuzione selezionate per "My project settings".

Pro

  • facile da configurare

Contro

  • Perché la destinazione predefinita viene modificata per creare e distribuire, quando uno sviluppatore fare un locale Rebuild della soluzione, distribuirà anche il database (l'edificio solo non attiverà la distribuzione)