96 votes

Comment faire Pour Convertir ASP.NET Site web ASP.NET Application Web

J'ai un ASP.NET 3.5 Site web (visual studio jargon), mais le site continue de croître et est à la recherche plutôt cowboyish entre autres choses. J'aimerais voir ce converti dans une Application Web (espaces de noms et tout et tout).

Est-ce quelque chose qui peut être facilement fait dans Visual Studio? Si non, existe-il d'autres outils qui peuvent créer tous les espaces de noms, etc. automatiquement?

113voto

Andrew Hare Points 159332

Voici une bonne procédure pas à pas:

Eh bien, il s'avère que l'option "Convertir à l'application web" n'existe PAS pour les "sites web". L'option "Convertir à l'application web" n'existe pas seulement pour les "applications web" !!!!

[c'est moi qui souligne]

Donc, voici l'affaire, à faire la la conversion, vous devez:

  • Ajouter une nouvelle "Application Web" pour votre VS 2008 solution (Fichier->Ajouter->Nouvel Projet->C#->Web->ASP.NET Web D'Application).

  • Ensuite, vous copiez tous les fichiers dans l'ancien "site web" pour votre nouveau créé "application web", et remplacer tous les fichiers créés par par défaut

  • L'étape suivante est le plus laid, vous avez besoin de "manuellement" ajouter les références dans votre "site web" pour la nouvelle "web l'application". Je pensais que le VS 2008 PowerCommands jouet voudrais faire cela pour moi comme il le fait de copier des références d'autres types de projets, mais il n'a pas. Vous avez pour le faire par vous-même, manuellement, et vous devez être prudent dans cette étape si vous avez plusieurs versions de la même assemblée (comme AJAXToolkit dans mon cas) ou des assemblages qui ont le GAC et les versions locales.

  • Répète la dernière étape et d'essayer de construire le "web application". Vous allez continuer à obtenir des erreurs comme " '....' est inconnu de l'espace de noms. Êtes-vous manque une référence d'assembly? ". Faire assurez-vous que vous n'avez aucun de ceux à l'exception de la celles où"....' est remplacé par le Id des contrôles serveur que vous utilisez. Dans d'autres termes, garder l'ajout de références et la construction du projet jusqu'à ce qu' les erreurs qui existent en raison de manquant .Le CONCEPTEUR.CS ou .Le CONCEPTEUR.VB les fichiers.

  • Ensuite, allez dans le "web application" root nœud de projet dans VS 2008 l'explorateur de solutions, et à droite cliquez dessus, puis vous trouverez la l'option "Convertir à l'application web". Ce que cette option n'est en fait faire de petits changements pour le "@Page" et "@" Contrôle de directives de pages et les contrôles, et la création de la nécessaire .Le CONCEPTEUR.CS ou .Le CONCEPTEUR.VB fichiers.

  • Essayez de construire le "web application". Si vous obtenez des erreurs, voir ce les références peuvent être manquantes et/ou aller cliquez sur "Convertir à l'application web" de nouveau. Parfois, s'il ya une erreur autres que celles résultant de manque CONCEPTEUR de fichiers, pas tous les pages/contrôles des CONCEPTEUR de fichiers créés pour eux. La fixation de la non CONCEPTEUR de problème et en cliquant sur "Convertir à l'application web" nouveau devrait faire le travail pour cela.

  • Une fois que vous avez réussi VS build, vous devez être prêt à aller. Démarrer le test de votre application web. En option, vous pouvez cliquer droit sur le "web application" root nœud de projet dans l' VS 2008 Explorateur de solutions, puis cliquez sur "Propriétés" puis dans l'onglet "Web" pour définir le "web application" à une le dossier virtuel dans IIS (vous pouvez créer nouveau répertoire virtuel à partir de là VS). Si vous souhaitez utiliser les services IIS répertoire virtuel que l'ancien "site web" utilisé, vous devez supprimer qu'à partir de IIS en premier.

  • Mise à jour: Lors de l'essai de vos pages, de payer PLUS d'ATTENTION à des classes dans "App_Code" le dossier, en particulier ceux avec AUCUN espace de NOMS. Ceux-ci peuvent être d'un grand piège. Nous avons eu un problème avec deux méthode d'extension des surcharges dans le même statique de la classe, qui n'avaient pas de noms,l'un s'étend DateTime? (Nullable) et appelle une autre surcharge s'étend DateTime lui-même. L'appel de la d'autres surcharges de la méthode d'extension passé VS 2008 compilation et nous a donné une erreur de compilation UNIQUEMENT lors DE l'EXÉCUTION (Avec IIS). Modification de l'appel à la d'autres surcharge de l'appel que méthode d'extension de l'appeler comme normal méthode statique (uniquement la modification de l'appel dans la même classe, des appels à partir de d'autres classes sont restés extension les appels de méthode) ont permis de résoudre celui-ci, mais clairement, ce n'est pas aussi sûr que d'habitude pour être dans VS 2005. Surtout avec classes sans espaces de noms.

  • Update2: Lors de la conversion, VS 2008 renomme votre "App_Code" "Old_App_Code". Ce nouveau nom sonne laid, mais NE PAS le RENOMMER en ARRIÈRE. Dans le "web application" modèle, l'ensemble du code sera dans une assemblée. Dans l'exécution, le serveur web ne sais pas ce qu'est le web type de projet que vous utilisez. Il n' prendre tout le code dans "App_Code" du dossier et créer une nouvelle assemblée. Cette ainsi, si vous disposez d'un code dans un dossier nommé "App_Code", vous vous retrouverez avec un RUNTIME des erreurs de compilation que le même type existent dans les deux assemblées, l'une créé par VS, et celui créé par IIS / ASP.NET Serveur de Développement. Pour l'éviter. laissez le "Old_App_Code" avec le même nom, ou le renommer RIEN, SAUF: "App_Code". Ne pas placer du code dans ces "App_Code" dossier et prefereably n'ont PAS de un dossier avec un tel nom dans votre "web l'application".

Je le sais car avant, mais il a oublié maintenant que je n'ai pas utilisé le "site web" modèle pour longtemps :(.

16voto

Konstantin Tarkus Points 16862

Procédure pas à pas: la Conversion d'un Projet de Site Web pour un Projet d'Application Web dans Visual Studio MSDN à l'adresse

Si votre application de site web se développe.. c'est mieux de le découper en plusieurs projets. La conversion à partir du Site Web du projet pour projet d'Application Web n'aidera pas beaucoup.

8voto

Matt Burrell Points 145

Si vous rencontrez des problèmes pour l'obtention de votre nouveau Projet d'Application Web pour construire vérifier les Propriétés du Fichier dans Visual Studio de tous les 'helper' classes. Pour un projet que j'avais de la conversion de l'Action de Construire a été défini pour le Contenu qu'il doit avoir été Compilé.

4voto

Sunny R Gupta Points 1874

J'ai été confronté aux mêmes problèmes au départ. Après avoir suivi les Wrox Professionnel ASP.NET 4.0 livre, j'ai trouvé la solution suivante pour mon cas.

J'ai d'abord créé une nouvelle application web. Copié tous les fichiers du site dans le dossier de l'application web. Cliquez-droit sur l'application, et cliquez sur conversion d'une application web.

Vous pourriez vous demander pourquoi vous avez besoin de convertir une application web dans une application web. La réponse est que lorsque vous créez un site web, il vous suffit de le code le .cs fichier où jamais nécessaire. Une application web, toutefois déclare .de la conception.cs (ou .vb) et un .cs fichier pour le code et la conception de la section automatiquement.

PROCHAINE: Supprimer tous les manuel de références, comme "Hérite" de l'attribut dans la directive de PAGE, pour les autres fichiers de votre site web, car les espaces de nom VA prendre soin de référencer les classes de manière centralisée.

J'ai aussi fait face à un problème, puisque je n'avais pas compris OBJ et dossier BIN dans mon projet. Si vous pensez que vous êtes absent de votre BIN et OBJ dossiers, cliquez simplement sur "Afficher Tous les Fichiers" icône dans l'Explorateur de solutions, puis cliquez-droit sur les dossiers manquants et les ajouter au projet. (assurez-vous qu'ils compiler avec le projet.)

4voto

Tim Samandari Points 11

Créer une Nouvelle Application Web dans VS 2010.
1. À l'aide de l'Explorateur Windows copier tous vos fichiers dans votre dossier de projet.
2. Dans VS 2010 l'explorateur de solutions afficher tous les fichiers.
3. Sélectionnez les fichiers et dossiers - clic droit inclure dans le projet.
4. Cliquez-droit sur le projet de l'explorateur de solutions et sélectionnez l'option Convertir une Application Web.

Il y a quelques petites différences, comme le dossier App_Code obtiendrez renommé old_app_code - qui, étonnamment, ne pas provoquer des erreurs. Le Nom de votre objet des sources de données, et hérite de la sur la Page @balise pourrait avoir besoin de l' [ProjectName]. préfixe ajouté à l'échelle mondiale. Par exemple, si votre nom de type a "BusinessLogic.OrderManager" et le nom de votre projet est InventorySystem vous auriez besoin de les modifier pour InventorySystem.BusinessLogic.OrderManager. Aussi un peu de l'affichage des modifications, telles que le champ de validateurs ne l'est pas par défaut de police rouge plus, par défaut est le noir.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X