vs2010を使用して作成された標準のSQLServer2008プロジェクトがあります。ビルドプロセスを変更して、最後にカスタムタスクが起動し、VSDBCMDを呼び出して、ビルドの出力(dbschemaファイル)を静的DBschemaファイルと比較することでデプロイスクリプトを生成するようにしました。VS2010コマンドプロンプトからこのコマンドを実行すると
vsdbcmd.exe /a:deploy /dd:- /dsp:sql /model:obj\Release\EnterpriseBuild.Services.Database.dbschema /targetmodelfile:VersionedSchemas\v1.0.dbschema /DeploymentScriptFile:NewDeploymentScript.sql /p:TargetDatabase="EnterpriseBuild.Database"
すべてがうまく機能し、newdeployment.sqlファイルが生成されます。ただし、.dbprojファイルを変更して、これをAfterBuildsターゲットとして含めると
<Target Name="AfterBuild">
<!--<Message Text="sample text" Importance="high"></Message>-->
<Exec IgnoreExitCode="false"
WorkingDirectory="C:\Program Files (x86)\Microsoft Visual Studio 10.0\VSTSDB\Deploy\"
Command="vsdbcmd.exe /a:deploy /dd:- /model:obj\Release\EnterpriseBuild.Services.Database.dbschema /targetmodelfile:VersionedSchemas\v1.0.dbschema /DeploymentScriptFile:NewDeploymentScript.sql /p:TargetDatabase="EnterpriseBuild.Database"" />
</Target>
ビルドは失敗します
EnterpriseBuild.Services.Database.dbproj(211,5): error MSB3073: The command "vsdbcmd.exe /a:deploy /dd:- /model:obj\Release\EnterpriseBuild.Services.Database.dbschema /targetmodelfile:VersionedSchemas\v1.0.dbschema /DeploymentScriptFile:NewDeploymentScript.sql /p:TargetDatabase="EnterpriseBuild.Database"" exited with code 1.
メッセージ。
誰かが私が間違っていることを提案できますか?