web-dev-qa-db-fra.com

CI / CD d'une API Web ASP.NET Core utilisant VSTS

J'ai créé une application API Web ASP.NET Core à l'aide de Visual Studio 2017 (Community Edition). Je pouvais publier avec succès sur un service d'application Azure à l'aide de Visual Studio.

Je souhaite maintenant configurer CI/CD avec VSTS. J'ai utilisé l'option 'Configurer la livraison continue' de Visual Studio qui a créé un projet dans VSTS et créé une définition de construction. J'ai dû créer une nouvelle définition de construction basée sur le modèle 'ASP.NET Core' dans VSTS afin d'éviter les erreurs de restauration Nuget. La solution est maintenant construite et les tests sont exécutés, mais la tâche 'Publier' se termine par un avertissement.

##[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.

La tâche 'Publier des artefacts' a un avertissement similaire -

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

Et évidemment, la construction ne produit aucun artefact.

Dois-je ajouter des tâches de génération au modèle de génération ASP.NET Core par défaut? Comment puis-je publier mon API Web sur Azure à l'aide de VSTS?

53
alwayslearning

Comme le message d'avertissement, votre référentiel semble ne pas avoir de projet Web. Vous devez donc désélectionner l'option Publier des projets Web dans .NET Core Publier. tâche, et spécifiez votre .csproj dans l'option projet (s).

enter image description here

Et vous pouvez également trouver le message d'aide pour l'option Publier des projets Web comme ci-dessous:

Si la valeur est true, la tâche essaiera de trouver les projets Web dans le référentiel et exécutera la commande de publication sur eux. Les projets Web sont identifiés par la présence d'un fichier web.config ou d'un dossier wwwroot dans le répertoire.

86
Marina Liu - MSFT

Cela peut vous aider ..

J'ai également fait face à cette erreur selon mon cas, j'utilise le dossier wwwroot pour enregistrer mes fichiers.

project.csproj

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

après i Push dans les VST, il n'y avait pas de dossier wwwroot dans le dépôt de côté. à cause de cela, j'ai eu cette erreur puis encore une fois j'ai poussé wwwroot avec erreur de sous-dossiers fixe

1
Dulanga Heshan