web-dev-qa-db-ja.com

VSTSを使用したASP.NET Core Web APIのCI / CD

Visual Studio 2017(Community Edition)を使用してASP.NET Core Web APIアプリを作成しました。 Visual Studioを使用してAzure App Serviceに正常に発行できました。

次に、VSTSを使用してCI/CDをセットアップします。 Visual Studioの「Configure Continuous Delivery」オプションを使用して、VSTSでプロジェクトを作成し、ビルド定義を作成しました。 Nugetの復元エラーを回避するために、VSTSの「ASP.NET Core」テンプレートに基づいて新しいビルド定義を作成する必要がありました。これでソリューションがビルドされ、テストが実行されますが、「公開」タスクは警告付きで完了します-

##[warning]No web project was found in the repository. Web projects are identified by the presence of either a web.config file or wwwroot folder in the directory.

「成果物の公開」タスクにも同様の警告があります-

##[warning]Directory 'd:\a\1\a' is empty. Nothing will be added to build artifact 'drop'.

そして明らかに、ビルドはアーティファクトを生成しません。

ビルドタスクをデフォルトのASP.NET Coreビルドテンプレートに追加する必要がありますか? VSTSを使用してWeb APIをAzureに公開するにはどうすればよいですか?

53
alwayslearning

警告メッセージとして、リポジトリにはWebプロジェクトがないようです。したがって、選択解除 .NET Core公開タスクのWebプロジェクトの公開オプションを使用し、.csproj in project(s)オプション。

enter image description here

また、次のようにWebプロジェクトの公開オプションのヒントメッセージを見つけることもできます。

Trueの場合、タスクはリポジトリ内のWebプロジェクトを見つけ、それらに対して公開コマンドを実行しようとします。 Webプロジェクトは、ディレクトリ内のweb.configファイルまたはwwwrootフォルダーの存在によって識別されます。

86

これが役立つ場合があります。

私の場合、このエラーに直面したのは、ファイルを保存するためにwwwrootフォルダを使用する

project.csproj

  <ItemGroup>
    <Folder Include="wwwroot\FoodItem\" />
    <Folder Include="wwwroot\Shops\" />
  </ItemGroup>

vstsにプッシュした後、サイドリポジトリにwwwrootフォルダーがありませんでした。そのため、このエラーが発生し、再びサブフォルダエラーでwwwrootをプッシュしました

1
Dulanga Heshan