Sortie de génération d'application Web ASP.NET - Comment inclure tous les fichiers de déploiement ?

StackOverflow https://stackoverflow.com/questions/55323

Question

Quand je construis mon ASP.NET application Web Je reçois un fichier .dll contenant le code du site Web (ce qui est génial), mais le site Web a également besoin de tous les fichiers .aspx et amis, et ceux-ci doivent être placés dans la structure de répertoires correcte.Comment puis-je obtenir tout cela dans un seul répertoire à la suite de chaque build ?Essayer de sélectionner les bons fichiers dans le répertoire source est pénible.

Le résultat final devrait être xcopy déployable.

Mise à jour: Je ne veux pas avoir à utiliser manuellement la commande Publier dont je connais.Je veux que l'ensemble complet des fichiers requis par l'application soit la sortie de la construction - cela signifie que j'obtiens également l'ensemble complet des fichiers en un seul endroit après l'exécution MSBuild.

Était-ce utile?

La solution

Une solution semble être les projets de déploiement Web (WDP), un module complémentaire pour Visual Studio (et msbuild) disponible qui crée un projet Web dans un répertoire et peut éventuellement fusionner des assemblys et modifier le fichier web.config.Le résultat de la création d’un WDP est constitué de tous les fichiers nécessaires au déploiement du site dans un seul répertoire.

Plus d'informations sur les projets de déploiement Web :

  1. Annonce sur le blog MSDN de webdevtools pour WDP 2008
  2. Présentation de ScottGu à WDP 2005

Le seul inconvénient de cette solution est l'exigence d'un module complémentaire qui doit être disponible sur la machine de build.Pourtant, c'est assez bien pour l'instant !

Autres conseils

ASP.NET n'a pas réel déploiement xcopy pour nouveau des sites.Cela dépend de la présence d'un répertoire/application virtuel dans IIS.Cependant, une fois ce répertoire virtuel créé, vous pouvez utiliser xcopy pour les mises à jour.

Tu peux Publier un site Web..Si vous souhaitez automatiser votre déploiement, vous devez utiliser certains scénario.

Avez-vous essayé d'utiliser aspnet_compiler.exe dans votre répertoire framework .net ?Je suis presque sûr que vous pouvez créer une version « prête à être déployée » d'une application Web ou d'un site Web.

La cible _CopyWebApplication sur MSBuild fera exactement ce dont vous avez besoin.Le problème est que seul l'assemblage principal sera copié dans le dossier bin et c'est pourquoi une tâche de copie est nécessaire pour copier également tout autre fichier dans le dossier bin.

J'essayais de publier l'exemple de script dans le cadre de cet article, mais je n'y suis pas parvenu.

S'il vous plaît jetez un oeil à ceci article sur mon blog qui décrit comment créer un script MSBuild similaire à celui dont vous avez besoin.

Avez-vous essayé de cliquer avec le bouton droit sur le site Web dans l'Explorateur de solutions et de cliquer sur « Publier le site Web » ?

Construire -> Publier

Une boîte de dialogue apparaîtra pour vous guider tout au long du processus.

Pour le bâtiment automatisé que vous décrivez dans la mise à jour, je vous recommande de vous pencher sur MSBuild et CruiseControl.NET

Cela dépend de la complexité de la solution dont vous avez besoin, vous pouvez simplement utiliser un script et Jenkins par exemple.Vous pouvez utiliser MSBUild avec Jenkins pour simplement déployer sur un IIS.Et si vous disposez d'autres outils Jenkins, il est assez facile de s'y connecter plus tard.Mais si vous souhaitez simplement créer, utilisez un script qui permet aux jenins d'exécuter chaque version utilisant MSDeploy et cela fonctionnera très bien.

Voici comment je procède, juste pour vous donner une idée :

Sonarqube utilise Gallio, Gendarme, FXcop, Stylecop, NDepths et PartCover pour obtenir vos métriques et tout cela est assez simple puisque SonarQube le fait automatiquement sans trop de configuration.

Voici la sorcière Jenkins qui construit et obtient les métriques Sonar et un autre travail pour le déploiement automatique sur IIS.J'utilise un simple script d'une ligne qui appelle mon MSBuild et quelle URL, passe et utilisateur.

Et Sonarqube, toutes les métriques de mon projet.Il s'agit d'une application MVC4 simple, mais elle fonctionne très bien ! :

Si vous souhaitez plus d'informations, puis-je vous fournir un bon guide.

Toute cette configuration utilise MSBuild également pour créer et déployer les applications.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top