2016-02-01 14 views
5

チームサービスでVSビルド定義を作成しました。ビルドはキューに入れると正常に実行され、Web Api2を使用して作成したサービスレイヤーを除いて、ソリューション内のすべてのプロジェクトのdllも出力されます。Visual Studio Team ServicesでWeb APIプロジェクトを公開していません(VS Onlineで)

私がドロップ位置からアーティファクトをダウンロードすると、データレイヤー、ビジネスレイヤーおよびその他のヘルパープロジェクト用のdllを保持するフォルダがあります。私が持っていないのは、私のIISにデプロイできる主要なサービス層のDLLです。

ここに私の公開設定のスクリーンショットがあります。

enter image description here

私は何をしないのだろうか?

答えて

11

あなたがビルド定義のデフォルト設定を使用しているようです。これらの設定では、 "Copy Files"タスクの内容は "** \ bin \ $(BuildConfiguration)**"ですが、Web APIプロジェクトにはbuildconfigurationフォルダがありません。したがって、Web APIプロジェクトのファイルを見つけることができません。以下のような定義を構築するプロジェクトのためにデプロイメントファイルをしたい場合は enter image description here

は、あなたがあなたに設定する必要があります:1、より「ファイルのコピー」タスクを追加し、これらのファイルをコピーして、次のように設定を構成するには

  1. 引数を追加/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"Visual Studio Buildステップです。
  2. Copy Filesステップを削除します。
  3. 公開するパスを$(build.artifactstagingdirectory)\\_PublishedWebsitesPublish Build Artifactsステップに設定します。

次に、展開ファイルをドロップフォルダに入れます。

+0

ありがとうございました。パブリッシュアクションのようにファイルをコピーしていないようです。私は、global.asaxとweb.configファイルがbinフォルダと一緒にそこにあることを期待していました。プロジェクトを右クリックして公開オプションを使用すると、サービスを実行するために必要なすべてのファイル、つまりbinフォルダとglobal.asax&web.configがコピーされます。 – user20358

+0

また、コピーファイルの手順はまだ他のプロジェクトからdllをコピーしているようです。私は、サービス関連のファイルとbinフォルダだけが公開されることを期待していました。私がそれをコントロールできる方法はありますか?後でMVCプロジェクトを追加するときに、他に必要なステップは何ですか? – user20358

+0

ありがとうございます。それはうまくいった。しかし、複数のサービスプロジェクトとmvcプロジェクトがある場合でも、このソリューションは機能しますか? – user20358

0

VisualStudioでConfiguration Managerを開き、ビルドする構成(デバッグ、リリースなど)にWebAPIプロジェクトが含まれていることを確認します。

enter image description here

関連する問題