私は、大規模な企業サービスインフラストラクチャの構築と展開のインフラストラクチャの作成に取り組んでいます。ビルドサーバーにはTFSBuild2012を使用し、WPP展開パッケージを生成するためにVisual Studio 2012を使用し、実際の展開を実行するためにMSDeploy2.1を使用しています。(MSDeploy 3にはいくつかのバグがあるため、使用できません。NTLM認証はWMSvcなどで壊れています)。
「Project.wpp.targets」ファイルを作成し、次のプロパティを追加しました。
<DeployOnBuild Condition="$(DeployOnBuild) == '' And '$(OutDir)' != '$(OutputPath)' ">true</DeployOnBuild>
<WebPublishMethod>Package</WebPublishMethod>
<DeployManagedPipelineMode>Integrated</DeployManagedPipelineMode>
<Disable_CopyWebApplication>True</Disable_CopyWebApplication>
ビルドサーバーでコンパイルが行われると、OutDirはOutputPathとは異なり、WPPがアクティブ化されます。ビルドは次のファイルを出力します。
Project.zip
Project.SetParameters.xml
Project.SourceManifest.xml
Project.deploy.cmd
Project.deploy-readme.txt
project.zipの内部は次のとおりです。
Archive.xml
Parameters.xml
systemInfo.xml
質問1 -SourceManifest.xmlファイルとは何ですか?また、zipパッケージに含まれていないのはなぜですか?展開用のzipファイルパッケージを作成する理由は、完全に自己完結しているように思われます。そのSourceManifestファイルは「緩い」です-展開ファイル共有にzipファイルを投げ込むことはもうできません。なぜパッケージに含まれていないのですか?また、ビルドサーバー上の特定のパスを指します。
質問2 -Archive.xmlファイルは何のためのものですか?SourceManifest.xmlにはやや冗長なようです。プロバイダー、多数のプロバイダーなどがあります。Microsoftのドキュメントでは、パッケージに「manifest.xml」と記載されています。このファイルはマニフェストのように見えますが、「archive.xml」と呼ばれています。ファイル名は重要ですか?manifest.xmlはarchive.xmlとは異なりますか?それらはSourceManifest.xmlとどのように関連していますか?SourceManifest.xmlは似ていますが、同時に異なっていますか?
質問3 -systemInfo.xmlは何のためにありますか?ビルドサーバー上のIISロール用にインストールされているすべてのコンポーネントが一覧表示されているようです。たとえば、ローカルマシンでコマンドラインでビルドを実行すると、.NET 2.0と4.0がインストールされており、マシン上のさまざまなIISコンポーネントのTrue/False値がいくつか表示されます。問題は、これらの設定が実際に展開したいものとは関係がないことです。MSDeployはこのファイルを見たことがありますか?生成を無効にすることはできますか?ビルドサーバーからの構成アーティファクトが本番環境に影響を与えることは絶対に避けたいです。