Вопрос

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

Это было полезно?

Решение 2

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

Другие советы

Есть свойства имени пользователя и пользователя userpasswordwords, которые вы можете использовать:

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

Разве эта задача не имеет члена 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">

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top