2010-09-03 8 views
6

Je travaille sur une application Web ASP.Net MVC dans VS 2010. Je souhaite exécuter l'application Web dans mon IIS 7 local sous son propre site Web. J'ai mon fichier hosts configuré pour que * .dev pointe vers mon ip local donc quand je crée un web IIS je peux juste lui donner un nom d'hôte unique comme myapp.dev et il fonctionne.Visual Studio 2010 - Comment publier sur IIS local pendant la génération

Ceci est mon premier projet d'application web avec VS et j'essaie de comprendre comment faire en sorte que VS publie le code de l'application Web sur mon site Web local lorsque j'atteins le build. J'ai déjà travaillé sur la publication, mais je veux l'automatiser. Aussi, je pourrais ajouter que j'ai quelques couches différentes (bibliothèques de classes) qui doivent également construire et publier tout à la fois. En résumé ce que je veux arriver est après avoir fait des modifications de code Je veux cliquer sur reconstruire la solution ou reconstruire le projet et après la construction réussie Je veux que les fichiers modifiés soient publiés sur la racine web que j'ai mis en place pour ce web particulier application dans mon IIS local. Ensuite, je peux simplement actualiser le navigateur pour tester mes modifications.

Y at-il des tutoriels sur ce type de configuration que quelqu'un peut me recommander?

+1

Pourquoi publier? Pourquoi ne pas pointer IIS sur votre code source? –

+0

John, comment cela fonctionne-t-il pour les projets d'application Web? J'ai fait ceci pour des projets de site Web mais j'ai pensé que le WAP est un animal différent. Mon application est un projet MVC 2. – JBeckton

Répondre

2

Bien que j'utilise 2008, j'ai trouvé beaucoup plus facile d'utiliser NAnt pour construire et publier. Il vous permet une plus grande flexibilité et vous pouvez l'utiliser pour publier sur votre site local et votre site de production.

3

Cela a fini par être beaucoup plus simple que je ne le pensais. Avec VS 2010, il existe une nouvelle fonctionnalité appelée "One Click Publish" et il existe également une barre d'outils. J'avais déjà créé un profil de publication pour mon site web iis local donc tout ce que j'ai à faire est de cliquer sur publier! Tous les projets de la solution sont ensuite construits et publiés. Tant que les projets sont tous dépendants, ils sont construits et publiés avec le projet web.

Maintenant, tout ce dont j'ai besoin c'est une touche de raccourci pour publier en un clic et je suis prêt.

J'imagine que si j'avais défini des tâches de construction supplémentaires dans le fichier csproj tout ce qui serait exécuté aussi bien.

5

Essayez-vous d'utiliser IIS au lieu du serveur Web de développement ASP.NET pendant le développement? Si c'est le cas, vous pouvez accéder aux paramètres de votre projet Web, puis à l'onglet Web pour modifier le serveur Web de développement en IIS et spécifier une URL. De cette façon, vous n'avez pas besoin de publier quoi que ce soit, le répertoire virtuel pointe vers le dossier de votre projet. Ainsi, lorsque vous compilez et exécutez votre application Web, il va prendre toute modification. Si ce n'est pas ce que vous voulez, vous pouvez utiliser l'outil de ligne de commande msdeploy dans l'étape de post-construction pour empaqueter et déployer/mettre à jour votre application Web vers IIS local. De cette façon chaque fois que vous construisez, msdeploy s'exécutera et mettra à jour IIS avec les changements.

+0

Je l'ai considéré mais je ne souhaite pas exécuter mon application sous un répertoire virtuel http: // localhost/myapp /, étant nouveau sur ASP.Net, j'ai eu des difficultés avec les chemins vers divers assets en passant du dev à la production. L'exécution de mon site de développement dans la racine Web comme je le ferais dans la production m'aide à faire face à cela. – JBeckton

0

Étant nouveau ASP.NET, je vous suggère de regarder à Url.Content pour les liens d'édition (si vous utilisez MVC) ou System.Web.VirtualPathUtility.ToAbsolute("~/...") (sinon) et une utilisation judicieuse du tilde pour éviter de traiter les effets secondaires de l'édition un site avec des racines différentes. En apprenant cela, vous aurez l'opportunité d'utiliser certaines des suggestions ci-dessus (en pointant IIS dans votre répertoire de projet).

L'autre option ouvre votre fichier de projet et fonctionne avec la cible de génération AfterBuild. Le décommenter et ajouter une tâche aspnetcompiler avec une tâche de publication accomplira également la même chose et si vous faites publier en un clic vous pouvez également séparer vos tâches de construction basées sur $ (Configuration) en spécifiant une condition.

Je vous suggère également de lire comment personnaliser les versions pour les projets Web. Il existe de nombreux articles déjà écrits qui vous permettront de bien progresser.