2017-09-27 7 views
1

J'ai une définition de build dans Visual Studio Team Services (a.k.a Visual Studio Online - je ne suis pas vraiment sûr du bon nom pour cela) qui ne produit pas d'artefact, et je ne sais pas trop pourquoi. Le projet principal dans le fichier de solution est un service Windows construit à l'aide de TopShelf. Je soupçonne que les arguments MSBuild dans la tâche Visual Studio Build peuvent être erronés. Je les ai copiés à partir d'une définition de build pour un projet MVC qui fonctionne, mais il me semble qu'ils pourraient ne pas fonctionner pour un service Windows.Comment obtenir ma solution de service Windows pour produire un artefact avec VSTS Build?

Ici, ils sont:

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

J'ai une tâche Copier les fichiers et Publish Créer tâche Artefacts plus tard dans le processus, mais apparemment le $(build.artifactstagingdirectory)\\ est vide. Je reçois cet avertissement:

## [warning] Le répertoire 'd: \ a \ 1 \ a' est vide. Rien ne sera ajouté à la construction de l'artefact

Bizarrement, dans une autre tâche dans le processus où je publie les symboles, tout semble se passer sans accroc.

Encore un peu: j'utilise un agent de construction hébergé. Je ne sais pas si cela compte ou non.

C'est toute l'information pertinente que je peux penser à fournir. Suis-je loin de la base ici? J'ai utilisé Octopus Deploy par le passé et je sais que j'ai dû installer Octopack sur mes services. Ai-je besoin de faire quelque chose de similaire ici?

Répondre

1

Vous n'avez besoin d'aucun de ces arguments MSbuild; la plupart d'entre eux s'appliquent aux projets ASP .NET et ne font rien pour une application console. Remplacez-les par /p:OutDir=$(Build.ArtifactStagingDirectory). Cela dira à MSBuild de placer les sorties de construction dans le répertoire de transfert d'artefact.

+0

Oui, c'était ça. Si je peux poser une question de suivi, comment l'avez-vous su? Mon Google-fu manquait apparemment quand il s'agissait de rechercher des arguments MSBuild, et j'aimerais avoir une référence dans le futur. – FishBasketGordo