2009-10-19 6 views
1

J'ai créé une application qui utilise des classes de App_Code.Problèmes avec le dossier App_code

J'ai maintenant ajouté cette application comme un sous-dossier à une application existante. Il y a donc App_Code maintenant un dans la racine et un dans le sous-dossier.

Je veux savoir comment puis-je faire mon application dans le sous-dossier soit en mesure de reconnaître les fichiers conservés dans Teh App_Code du sous-dossier.

+0

Voulez-vous dire que vous avez deux projets de site Web dans Visual Studio, chacun avec leur propre dossier App_Code? Ou avez-vous un projet avec des dossiers? – d4nt

+0

J'ai créé un site Web «A» avec son propre dossier app_code. Puis j'ai ajouté «A» à un autre site Web «B» en tant que sous-dossier. B contient également un App_Code. Je ne peux pas fusionner les deux puisque les deux ont des classes avec le même nom. – Hitz

+0

Attendez que vous essayiez de fusionner deux sites Web ensemble? Il n'y a pas un moyen facile de le faire. En toute honnêteté, je déplacerais la plupart des choses dans App_Code qui ne sont pas liées à l'interface utilisateur dans les projets de bibliothèque afin que vos autres projets puissent les référencer. – Min

Répondre

0

Je pense que codeSubDirectories est utilisé uniquement lorsque vous utilisez C# et VB.NET dans le même projet. Par ex. votre site Web est en C# mais dans mais vous voulez utiliser aussi le code VB.NET. Ceci est valable uniquement pour les sites Web et non pour les projets d'application Web.

using c# and vb in the same web project

Mais si par ex. WebsiteA se trouve dans C: \ inetpub \ wwwroot \ WebsiteA et vous voulez que le site WebB ait l'emplacement C: \ inetpub \ wwwroot \ WebsiteA \ WebsiteB alors WebsiteA et le site Web B doivent être configurés en tant que répertoires virtuels dans IIS.

Si vous parlez de partager la même logique entre les applications, vous devez envelopper toute la logique dans une bibliothèque de classes et de référence pour les projets.

2

Je envisagerais de déplacer tout votre code hors de l'App _ Code (et les dossiers/OldProject/App _ Code) et dans un nouveau projet de bibliothèque de classes. Mettez le code de OldProject dans un espace de nom, et le code de NewProject dans un espace de noms différent (évite le problème de nom en double). Ajoutez ensuite des références au nouveau projet dll et à l'espace de noms de l'application Web, le cas échéant (cela vous permettra également de tester votre code Unit, ce qui est presque impossible à faire lorsque le code est dans App_Code).

1

Il pourrait être plus facile de passer par le dossier App_Code du site B et créer un nouvel espace de noms pour ces classes. Ensuite, déplacez tous les fichiers dans un dossier app_code afin que tout soit respecté jusqu'à un assemblage pendant l'exécution. Le cadre devrait être capable de comprendre les choses à ce moment-là.

Espérons que cela aide certains.

+0

Merci pour le conseil de Chris mais ça ne m'a pas fonctionné, On dirait que je dois faire ce que Yaakov a suggéré. –

Questions connexes