web-dev-qa-db-fra.com

Le dossier App_Code est manquant dans VS 2010

J'essayais de créer un site Web Dynamic Data à l'aide de VS 2010 RC. Une tentative de création d'un dossier App_Code dans lequel je mettrais une classe LINQ to SQL a échoué. Lorsque j'ai sélectionné 'Ajouter un dossier ASP.NET' pour ajouter le dossier, j'avais les options pour créer uniquement les dossiers suivants:

  • App_GlobalResources
  • App_LocalResources
  • Données d'application
  • App_Browsers
  • Thème

Qu'est-il arrivé au dossier App_Code?

39
Vadim

Pourquoi ne pas créer un autre projet, une bibliothèque de classes, et l'insérer là-dedans. C'est de loin le meilleur moyen de garder ces classes séparées 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 sous forme de dossier Asp.Net. Mais à partir d'un projet d'application Web, vous pouvez simplement créer un nouveau dossier et nommez-le App_Code pour que tout fonctionne correctement. C'est à partir de Visual Studio 2010 RC.

34
Chris Conway

vous ne pouvez pas/ne devriez pas ajouter le dossier App_Code à une application Web, car ce dossier est conçu pour la compilation à l'exécution par asp.net et le projet d'application Web est conçu pour vous permettre de précompiler votre site Web dans une dll que vous trouverez dans le fichier. Dossier Bin et déployer sur votre site. Si vous ajoutez cela manuellement, vous risquez peut-être de rencontrer des conflits de noms car la classe sera précompilée dans la dll, puis asp.net tentera à nouveau de recompiler au moment de l'exécution.

Donc, pour les projets Web App, vous devriez plutôt ajouter un dossier appelé quelque chose comme «CodeFolder», puis ajouter votre classe. Cliquez ensuite avec le bouton droit de la souris sur les propriétés de ce fichier de classe et définissez sa configuration de compilation pour la compilation plutôt que pour le contenu.

Je travaille sur mon propre projet Web pour www.athenatennis.com.sg et je vais suivre une courbe d'apprentissage similaire avec cela.

23
letapz

Vous pouvez créer manuellement le dossier App_Code et ajouter votre classe à l'intérieur de ... .. Une chose à prendre en note est ... dans les propriétés du fichier, assurez-vous que Build Action est défini sur Compile .

3
CK Lam

J'ai aussi trouvé ça drôle qu'il manque. Le fait est que vous n'avez "pas" besoin de créer le dossier App_Code. Il vous suffit d'ajouter les classes à un nouveau dossier. 

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

Donc, je veux aussi savoir pourquoi ils ont décidé de supprimer cette contrainte? Était-ce à cause de plaintes de personnes, ou le concept a-t-il changé et a-t-il été jugé nécessaire?

2
Bernard

Si vous voulez un dossier app_code, vous devez créer un "site Web ASP.NET". Une fois cela fait, faites un clic droit sur le site Web (Explorateur de solutions) -> Ajouter un dossier ASP.NET-> Code_App.

Si vous regardez le dossier app_code dans "l'application Web ASP.NET", vous perdez du temps.

0
Djay

dans VS 2010, vous devez créer une solution, puis cliquer avec le bouton droit de la souris sur -> ajouter un nouveau site Web, puis lorsque vous ajoutez des classes, linq2sql, etc., vs créera le dossier app_code pour vous.

0
cvanniekerk

si vous créez une classe, il vous sera demandé si vous souhaitez l'ajouter à un dossier de code d'application.

0
fujiko

Il est très facile d'ajouter simplement la nouvelle classe de Add New Item. Visual Studio 2010 affichera automatiquement le message "Voulez-vous placer le fichier dans le dossier App_Code"

0
saqib amin