msdeploy
を使用して手動で展開しているいくつかのWebサービスがあります。適切な_PublishedWebsites\<<ProjectName>>_Package
ディレクトリにあるTFS2010ビルドマシンから展開パッケージを取得します。TFSビルドを使用した複数のWebデプロイメントパッケージ
ここで、導入担当者がパラメータを参照しやすくするために、導入パッケージを展開ツールで包み込みたいと考えています。
個々のWebサービスデプロイメントパッケージをビルドし、デプロイメントパッケージをデプロイメントツールビルドに適した場所に配置してから、デプロイメントツールビルドをビルドして以前のビルドマシン上の同じBinaries
のドロップフォルダーに、ビルドされたデプロイメントパッケージをインストールします。
何らかの理由で、これは非常に困難です。我々はパッケージが変数(例えば$(TargetDir)
)を使用して、Webプロジェクト設定を公開/ Webサービスプロジェクトのパッケージにを作成されます場所の設定
を試してみた
物事。 Visual Studioは入力された変数を解釈し、それを開発マシンのハードコードされたパスに置き換えます。これがビルドマシンに向かいます。ビルドマシンでは、最終結果は何もありません。展開パッケージは引き続き
_PublishedWebsites\<<ProjectName>>_Package
に送信されます。
おそらく/p:PackageLocation
を、/p:CreatePackageOnPublish=true /p:DeployOnBuild=true
に加えて、TFSビルド定義の "Process"/"Advances"セクションのMSBuild Arguments
設定の1つとしてオンにします。このすべては、エラーが生成されたんでした:MSB1008: Only one project can be specified. Switch: p:PackageLocation=$(BinariesRoot)\DeploymentFiles For switch syntax, type "MSBuild /help"
ビルドによって生成された複数の展開パッケージがあるため。
アドバイスありがとうございます。私たちはこれについて間違った方法をとっていますか?私たちはXAMLのビルドを変更するようなことをしなければなりません(別の問題についてはthis page suggestsのように)?あなたが考慮するため
Cool!提案をありがとう、ニック。私は後でそれを試してみる... –