2015-11-24 5 views
12

私のチームはVisual Studio Team Servicesを使用してTFSリポジトリのソースコードを管理します。このソリューションには複数のWebアプリケーションが含まれています。私は成功したビルドの後、各Webアプリケーションが正しいAzure Webアプリケーションに展開されるように、このソリューションのContinuous IntegrationとContinuous Deploymentを設定しようとしています。 $/MyProduct/MAIN/MySolution.slnをビルドするためにBuildDefinitionを設定しました。私は、この主題にあるいくつかのMSDNの記事に基づいてMSBuildのに次のパラメータを定義しました:ビジュアルスタジオチームサービスを使用して複数のWebアプリケーションを含むソリューションを構築し、これらのWebアプリケーションをazureに配備する

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:SkipInvalidConfigurations=true 
/p:PackageLocation="$(build.stagingDirectory)" 

ビルド手順は、Visual Studioのビルドステップ、(現在の複雑さを最小限に抑えるために無効)Visual Studioのテストステップを含み、 (私が本当に必要と思わない)インデックスソースとシンボルの公開ステップと、最終的にビルド成果物のコピーと公開ステップを実行します。

この構成を使用してこのソリューションを構築することができます。ビルド結果、ビルドログ、ビルドの詳細などを見ることができます。作成されたアーティファクトを見ると、「ドロップ」と「build.sourceLabel」の2つのアーティファクトが表示されます。アーティファクトエクスプローラを使用してドロップファイルを調べると私はこのドロップファイルですべてのプロジェクトを見つけました.Webアプリケーションプロジェクトでは、webapp1 \ obj \ QA \ Package \ PackageTemp \ binフォルダに移動して、Webアプリケーション用のすべてのDLLなどを表示できます。

Webアプリケーションごとに1つのzipファイルがありますが、これはVisual Studio Team Servicesのリリース機能が期待しているものです。

ビルドステップから正しい成果物を生成できるように現在の設定を変更する方法を知りたいので、各Webアプリを正しいWebアプリに展開するための正しいリリースWep App Deploymentタスクを作成できます私の環境。

これはすべてVisual Studio 2015とVisual Studio Online(Team Services)で行われています。

答えて

22

あなたの状況をテストするために、Visual Studio 2015を使用して、同じソリューションで3つの新しいWebプロジェクトを作成し、VSTSにチェックインしました。その後Azure Webサイトの展開テンプレートを使用して新しいビルドを作成しました。多くの人が、新しいビルド定義の作成ダイアログにビルドテンプレートとデプロイメントテンプレートがあることを忘れています。私がAzure Webテンプレートを使用するのは、渡すmsbuild引数を覚えていないからです。RMを使用する場合は、単にAzure Web App Deploymentタスクを削除できます。

私がmsbuild引数に常に行う変更は、PackageLocationです。私はいつも$(BuildConfiguration)に変更します。そうすれば、私は同時にDebugとReleaseの両方をビルドすることができます。

/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(BuildConfiguration)" 

最後に、「** \ *。zip」だけを検索するために、コピーおよびパブリッシュ・ビルド成果物を変更します。 Copy Rootを空のままにしてビルドを実行します。 ビルドが完了すると、アーティファクトを探索するときに[ProjectName]/[Configuration] /projectName.zipの下にプロジェクトごとに1つのzipがあります。

enter image description here

さらにご質問がある場合は、Twitterで返信用@DonovanBrown

+0

感謝を私にpingを実行することができます...私はいくつかのさらなる研究を行なったし、ブランドの新しいプロジェクト/ソリューション/ Webアプリケーションであることを発見し、Iあなたが記述したのと同じように動作させることができます。実際の問題は、私たちのプロジェクトとソリューションがVS2013と.NET 4.0で作成され、移行/アップグレードされたということです。シンプルな事実は、.slnファイルと.csprojファイルはローカルに構築されますが、VSOでは構築されないことです。新しいプロジェクトとソリューションファイルを作成し、それがより良い結果をもたらすかどうかを確認します。 –

+0

@MichaelSchulz私はVS2013で作成されたソリューションで、VSOでビルドされていない同じ問題に取り組んでいます。どのようにこれを修正するための任意のアイデア? – TWilly

+0

Visual Studio Online RMについて非常に良い答え – user3447136

関連する問題