40 votes

Le dossier App_Code est manquant dans VS 2010

J'ai essayé de créer un site Web de données dynamiques en utilisant VS 2010 RC. Une tentative de création d'un dossier App_Code où j'aurais placé une classe LINQ to SQL a échoué. Lorsque j'ai sélectionné "Add ASP.NET Folder" pour ajouter le dossier, j'avais la possibilité de créer uniquement les dossiers suivants :

  • App_GlobalResources
  • App_LocalResources
  • App_Data
  • App_Browsers
  • Thème

Qu'est-il arrivé au dossier App_Code ?

35voto

Chris Conway Points 6678

Pourquoi ne pas créer un autre projet, une bibliothèque de classes, et l'y placer. C'est de loin le meilleur moyen de séparer ces classes du reste de votre site Web.

Pour répondre à votre question spécifique sur le dossier App_Code, il est disponible dans les projets WebSite comme un dossier Asp.Net que vous pouvez choisir. Mais à partir d'un projet d'application Web, vous pouvez simplement créer un nouveau dossier et le nommer App_Code et il fonctionnera parfaitement. Ces informations sont disponibles dans Visual Studio 2010 RC.

23voto

letapz Points 179

Vous ne pouvez pas/ne devez pas ajouter le dossier App_Code à une application Web, car ce dossier est destiné à la compilation d'exécution par asp.net et le projet d'application Web est conçu pour que vous précompiliez votre site Web dans une dll que vous pouvez trouver dans le dossier Bin et déployer sur votre site. Si vous ajoutez ceci manuellement, vous risquez d'avoir des conflits de noms car la classe sera précompilée dans la dll et ensuite asp.net essaiera de la recompiler au moment de l'exécution.

Ainsi, pour les projets d'applications Web, vous devriez plutôt ajouter un dossier appelé "CodeFolder" et y ajouter votre classe. Ensuite, cliquez avec le bouton droit de la souris sur les propriétés de ce fichier de classe et définissez sa configuration de construction pour qu'il soit compilé plutôt que contenu.

Je travaille sur mon propre projet web pour www.athenatennis.com.sg et je suis en train de suivre une courbe d'apprentissage similaire.

3voto

CK Lam Points 21

Vous pouvez créer manuellement le dossier App_Code et y ajouter votre classe. Une chose dont vous devez prendre note est... dans les propriétés du fichier, assurez-vous que l'attribut Action de construction est réglé sur Compiler .

2voto

Bernard Points 21

J'ai également trouvé amusant qu'il soit absent. Le fait est que vous n'avez pas besoin de créer le dossier App_Code, il suffit d'ajouter les classes à n'importe quel nouveau dossier.

Dans VS 2005, toute classe en dehors de l'App_Code donnerait une erreur de compilation.

Je veux donc aussi savoir pourquoi ils ont décidé de supprimer cette contrainte ? Est-ce parce que des gens s'en sont plaints, ou parce que le concept a changé et que cela a été jugé nécessaire ?

0voto

cvanniekerk Points 18

Dans VS 2010, vous devez créer une solution, puis faire un clic droit -> ajouter un nouveau site web, puis lorsque vous ajoutez des classes, linq2sql etc, vs créera le dossier app_code pour vous.

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