0

データベースプロジェクトを使用してデータベースをデプロイするステップを追加することにより、デフォルトのTFSビルドプロセスをカスタマイズしようとしています。[これらの手順][1]に従い、データベース名がInvokeProcessの下のこの手順のdeploymanifestファイルのハードコードである場合にDBデプロイメントが機能します。

c。Argumentsプロパティを"/a:Deploy / dd + / dsp:Sql/manifest:DatabaseProjectName.deploymanifest"に設定します。DatabaseProjectNameを、デプロイするデータベースプロジェクトの名前に置き換える必要があります。

私の質問は、DatabaseProjectNameを変数に変更し、動的に割り当てて、このBuildProcessTemplateを他のデータベースビルドで使用できるようにする方法、またはプロジェクトがTFS内で分岐している場合はどうすればよいですか?SQLCmdVarsで使用されている$(DatabaseName)変数をプロジェクトのプロパティで使用しようとしましたが、解決されないようです。

4

1 に答える 1

2

まず、定義テンプレートを変更して「DatabaseProjectName」(およびデータベースの名前が異なる場合は「TargetDatabaseName」)を引数として追加することにより、DatabaseProjectNameをビルド定義の変数にすることができます。メタデータプロパティをクリックしてプロパティを公開し、ビルド定義ごとに異なる名前に設定できます。引数の追加については、この投稿を参照してください。 http://www.ewaldhofman.nl/post/2010/04/27/Customize-Team-Build-2010-e28093-Part-2-Add-arguments-and-variables.aspx

次に、InvokeProcessアクティビティの引数を、次のような文字列の変数として使用します。/ p:TargetDatabaseオプションを含めることにより、マニフェストのデータベース名をオーバーライドできます。

/a:deploy /dd+ /dsp:sql /manifest:" & DatabaseProjectName & ".deploymanifest /p:TargetDatabase=" & TargetDatabaseName
于 2011-09-09T02:45:14.927 に答える