MSBuild ExtensionPack Sql2008. Задача базы данных - PullRequest
0 голосов
/ 05 сентября 2011

Я пытаюсь сделать некоторые вещи SQL (резервное копирование базы данных, восстановление базы данных, запуск некоторых файлов сценариев) как часть сценария MSBuild. Задача Sql2008.Database из пакета расширений MSBuild казалась довольно простым способом сделать это, однако я не могу найти способ указать экземпляр сервера или имя пользователя и пароль. Мне трудно поверить, что он ограничен экземпляром по умолчанию на компьютере, на котором вы работаете, и хочу подключиться, когда пользователь MSBuild работает, но я не могу найти способ сделать что-то еще. Это - документация, из которой я работаю. Кто-нибудь может объяснить, как это сделать, или мне нужно взглянуть на другой подход?

Ответы [ 3 ]

2 голосов
/ 04 мая 2012

Существуют свойства UserName и UserPassword, которые вы можете использовать: </p> <pre><code><MSBuild.ExtensionPack.Sql2008.Database MachineName="$(SQLServer)" TaskAction="Backup" DatabaseItem="$(SQLDatabaseName)" DataFilePath="$(SQLBackupLocation)" UserName="$(SQLUserName)" UserPassword="$(SQLPassword)" />

1 голос
/ 06 сентября 2011

Я обнаружил, что класс MSBuild.ExtensionPack.BaseTask имеет свойства MachineName UserName и UserPassword. SQL2008.Database класс наследует от этого класса. Я привык к документации в стиле MSDN, где унаследованные члены задокументированы в производном классе, поэтому я не думал искать их там, хотя должен был. Хотя это кажется им странным, поскольку они бессмысленны в контексте многих других классов, наследуемых от MSBuild.ExtensionPack.BaseTask.

0 голосов
/ 05 сентября 2011

Разве эта задача не имеет члена MachineName? Подумайте, это именно то имя экземпляра sql, которое вам нужно.

Я использую задачу MSBuild.ExtensionPack.SqlServer.SqlExecute и оператор sql, чтобы сделать все остальное например,

<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">

Они бы никогда не подумали обо всех вариантах, которые мне нужны ....

...