2011-12-23 10 views
3

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のように)?あなたが考慮するため

答えて

2

カップルの可能性:

1 - コピーするあなたの標準的なパッケージング工程の後に実行されるのMSBuildプロジェクトを作成します - あなたは、いくつかのコピータスク

2を実行するように説明しているようTFSのワークフローを変更お好みのいくつかの場所に_PublishedWebsitesから出力

3 - パッケージのドロップ位置変更するには、パッケージを構築する場合、次のMSBuildのパラメータをオーバーライドします:

<DefaultPackageOutputDir Condition="'$(DefaultPackageOutputDir)'==''">$(OutDir)[YourDesiredLocation]\$(DefaultMSDeployDestinationApplicationName)\Package</DefaultPackageOutputDir> 
をあなたは

c:\program files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets 

I最近、カスタムのMSBuildプロジェクトファイルに#3で提案されているのMSBuildのオーバーライドを使用して、クライアントに提案#2実装とで使用可能なパッケージのMSBuildパラメータのセットを見ることができ

注意それは魅力のように働いた。

+0

Cool!提案をありがとう、ニック。私は後でそれを試してみる... –

関連する問題