2017-05-16 1 views
0

Nous avons une solution VS 2017 avec un projet web principal. Nous avons également 3 autres projets web - ce sont des modules qui dépendent du projet web principal. Cependant, le projet web principal ne fait aucune référence ou ne connaît rien à propos de ces modules. Lorsque la solution génère les modules, copiez leur sortie dans le dossier bin du projet Web principal. Les modules doivent dépendre de la dernière version du projet principal, donc il doit d'abord construire le principal, puis les modules. Tout cela fonctionne très bien localement - le site charge les modules de travail, etc.Créer un projet Web contenant Zip WebDeploy et des modules non référencés

Nous utilisons actuellement Octopus et son étape Octopack après Solution et obtient tous les fichiers. Nous essayons d'utiliser simplement VSTS et nous avons des problèmes pour obtenir les fichiers du module dans un fichier zip de déploiement Web standard.

Lorsque MSBbuild s'exécute sur Solution, il crée un fichier zip par projet Web. Le fichier zip du projet principal ne contient pas les fichiers Dll pour les modules (même s'ils se trouvent dans le dossier bin). Par conséquent, lorsque nous déployons via le site VSTS, il manque les modules. Comment pouvons-nous dire à MSBuild de créer un seul paquet webdeploy pour la solution, y compris les modules construits?

La commande MSBuild est fondamentalement la boîte un de VSTS:

/p:DeployOnBuild=true 
/p:WebPublishMethod=Package 
/p:PackageAsSingleFile=true 
/p:PackageLocation="C:\temp\web.zip" 

Pour autant que je peux voir MsBuild rend le zip webdeploy avant que les autres éléments de solution copier leur contenu dans le dossier bin. MSBuild est un peu un mystère pour moi dans le meilleur des cas.

+0

Je pense que c'est en grande partie un cas de MSBuild ne se soucient pas de fichiers non référencés comme indiqué ici https://passiondev.wordpress.com/2013/12/23/azure-website-deployment-additional-dependencies/. Donc je pense que j'ai juste besoin de construire la solution - alors j'ai inclus qui sont conditionnels sur les fichiers existants dans une 2eme build - j'espère pouvoir le comprendre – GraemeMiller

Répondre

0

Largement il s'agit juste de faire MSBuild inclure des fichiers supplémentaires qui ne font pas partie du projet. Le projet web de pack publie uniquement les fichiers inclus dans le projet.

J'ai mis à jour le fichier Csproj du projet web principal en suivant le guide de cette question How do you include additional files using VS2010 web deployment packages?. J'ai couru MSBuild une fois pour construire la solution afin que les fichiers de module dll étaient disponibles et j'ai alors couru MSBuild encore avec le projet Web principal pour créer la sortie de WebDeploy avec les dossiers inclus supplémentaires.

Pas sûr que ce soit le meilleur moyen - semble un peu compliqué juste pour ajouter des fichiers, mais cela fonctionne.

+0

Merci de partager votre solution ici, vous pouvez la marquer comme la reponse jusqu'après un délai de grâce Cela pourrait aider d'autres membres de la communauté qui ont les mêmes problèmes. –