Frage

Ich versuche, SQL -Sachen (eine Datenbank zurückzugeben, eine Datenbank wiederherzustellen, einige Skriptdateien auszuführen) als Teil eines MSBuild -Skripts. Die SQL2008.Database -Aufgabe aus dem MSBUILD -Erweiterungspaket schien eine gute einfache Möglichkeit zu sein. Ich kann jedoch keine Möglichkeit finden, eine Serverinstanz oder ein Benutzername und ein Passwort anzugeben. Es fällt mir schwer zu glauben, dass es auf die Standardinstanz auf der Maschine beschränkt ist, auf der Sie aufbauen und eine Verbindung herstellen möchten, wenn der Benutzer MSBuild ausgeführt wird, aber ich kann keinen Weg finden, etwas anderes zu tun. Dies ist die Dokumentation, aus der ich arbeite. Kann jemand erklären, wie man das tut, oder muss ich mir einen anderen Ansatz ansehen?

War es hilfreich?

Lösung 2

Ich entdeckte, dass die MSBuild.ExtensionPack.BaseTask Klasse hat die Eigenschaften MachineName UserName und UserPassword. SQL2008.Database Klasse erbt aus dieser Klasse. Ich bin es an eine Dokumentation im MSDN -Stil gewöhnt, in der die ererbten Mitglieder in der abgeleiteten Klasse dokumentiert sind, sodass ich nicht daran gedacht habe, sie dort zu suchen, obwohl ich es sollte. Es scheint jedoch ein seltsamer Ort für sie zu sein, da sie im Kontext vieler anderer Klassen, aus denen er erbt MSBuild.ExtensionPack.BaseTask.

Andere Tipps

Es gibt Benutzername- und Benutzerpassword -Eigenschaften, die Sie verwenden können:

<MSBuild.ExtensionPack.Sql2008.Database 
MachineName="$(SQLServer)" 
TaskAction="Backup" 
DatabaseItem="$(SQLDatabaseName)" 
DataFilePath="$(SQLBackupLocation)" 
UserName="$(SQLUserName)"
UserPassword="$(SQLPassword)" />

Hat diese Aufgabe nicht das Maschinename -Mitglied? Denken Sie, das ist nur der SQL -Instanzname, den Sie benötigen.

Ich verwende die Aufgabe msbuild.extensionPack.sqlserver.sqLexecute und eine SQL -Anweisung, um alles andere zu tun, z.

<MSBuild.ExtensionPack.SqlServer.SqlExecute TaskAction="ExecuteReader"
                                                Sql="RESTORE DATABASE $(DatabaseName) FROM  DISK = N'$(RestoreFileDestination)\Source\$(Branch)\Build\$(DatabaseFile)' WITH FILE = 1,MOVE N'Accelerate' TO N'$(dataDir)\$(DatabaseName)_1.LDF', MOVE N'Accelerate_log' TO N'$(logsDir)\$(DatabaseName)_2.LDF', NOUNLOAD, REPLACE, KEEP_CDC, STATS = 10"
                                                ConnectionString="Data Source=Localhost\SQLExpress;Initial Catalog=master;Integrated Security=True"
                                                CommandTimeout="660">

Sie würden nie an all die Optionen denken, die ich scheine zu brauchen ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top