Comment se fait-il que les classes des sous-dossiers de mon dossier App_Code ne soient pas trouvées correctement?

StackOverflow https://stackoverflow.com/questions/155105

Question

Le message d'erreur suivant s'affiche lorsque je mets des fichiers de classe dans les sous-dossiers de mon dossier App_Code:

errorCS0246: Le nom du type ou de l'espace de noms 'MyClassName' est introuvable (vous manque une directive using ou une référence d'assembly?)

Cette classe n'est pas du tout dans un espace de noms. Des idées?

Était-ce utile?

La solution

Vous devez ajouter codeSubDirectories à votre élément de compilation dans web.config

.
<configuration>
    <system.web>
      <compilation>
         <codeSubDirectories>
           <add directoryName="View"/>
         </codeSubDirectories>
      </compilation>
   </system.web>
</configuration>

Autres conseils

Recherchez la propriété BuildAction du fichier. Cela doit être défini sur "Compiler"

Est-il possible que vous n'ayez pas défini le dossier en tant qu'application dans IIS (ou votre serveur Web)? Sinon, le code App_Code utilisé est celui du dossier parent (ou de l'application suivante vers le haut).

Assurez-vous que le dossier est marqué en tant qu'application et utilise la version correcte d'ASP.NET.

Ce n'est peut-être pas la bonne façon mais je trouve que c'est le plus facile.

Créez la classe dans le dossier principal comme d'habitude, puis déplacez-la avec la souris dans votre sous-dossier. Re-compiler et tout devrait bien se passer.

Au fur et à mesure que vous ajoutez des dossiers à votre app_code, ils sont séparés par différents espaces de noms, si je me souviens bien, en utilisant l'espace de noms par défaut comme racine, puis en ajoutant chaque dossier.

Dans Visual Studio (2010 au moins, mais je me souviens également des versions antérieures), vous pouvez cliquer avec le bouton droit de la souris sur le dossier dans l'Explorateur de solutions, puis choisir "Inclure dans le projet".

Ensuite, dans l'onglet Propriétés de chaque fichier (ou sélectionnez-les tous en même temps), choisissez "Compiler". pour l'action " Build Action " propriété.

Cela a fonctionné pour moi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top