2011-09-05 12 views
0

MSBuildスクリプトの一部として、いくつかのSQL処理(データベースのバックアップ、データベースの復元、スクリプトファイルの実行)を試みています。 MSBuild ExtensionパックのSql2008.Databaseタスクはこれを行う簡単な方法でしたが、サーバーインスタンスまたはユーザー名とパスワードを指定する方法が見つかりません。私はそれがあなたが構築しているマシン上のデフォルトインスタンスに限定されており、MSBuildが実行されているユーザーとして接続したいと思うのは難しいと思っていますが、何か他の方法を見つける方法がありません。 Thisは私が働いているドキュメントです。誰かがこれを行う方法を説明することができますか私は別のアプローチを見てする必要がありますか?MSBuild ExtensionPack Sql2008.Databaseタスク

答えて

1

私はMSBuild.ExtensionPack.BaseTaskクラスはプロパティMachineNameUserNameUserPasswordを持っていることを発見しました。 SQL2008.Databaseクラスはこのクラスから継承します。私はMSDNスタイルのドキュメントに継承されたメンバが派生クラスについて文書化されているので、私はそれらを探すべきだと思っていませんでした。 MSBuild.ExtensionPack.BaseTaskを継承している他の多くのクラスの文脈では無意味なので、彼らにとっては不思議な場所と思われます。

+0

まだデフォルトインスタンスに制限されていますか? – Burt

+0

名前付きインスタンスの通常の構文を使用するだけです。つまりMachineNameパラメータをmachinename/instanceに設定します。 –

0

このタスクには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"> 

彼らは私が必要とするように見えるすべてのオプションを考えることがありませんでした....

+0

ありません、それはMachineNameにはありません。私は上記のようにSqlExecuteタスクを使用して見ているが、バックアップ/復元オプションがSQLコマンドの一部ではなくタスク定義の一部であるため、可能であればSql2008.Databaseタスクを使用する方が好きです。 –

+0

タスクのヘルプで:<! - データベースを別の場所に復元する> ? –

+0

OKここに定義されているデータベースクラスのメンバーを見ていました。http://www.msbuildextensionpack.com/help/4.0.1.0/html/2dfa8205-e7ff-59bb-771b-d107fd8cb0da.htm MachineNameはその1つではありません。しかし、それは私の問題の指定されたユーザー名とパスワードの部分に役立ちません。私は統合されたWindows認証を使用することはできませんので、ドメインの一部ではないリモートSQLサーバーに対してスクリプトを実行する必要があります。 –

2

あなたが使用できるユーザー名とのUserPasswordプロパティがあります。

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

+0

入力していただきありがとうございます。私自身の回答を見ると、数か月前 –

関連する問題