Ich erhalte den folgenden Fehler, wenn ich Klassendateien in Unterordner meines App_Code-Ordners lege:
errorCS0246: Der Typ oder Namespace-Name 'MyClassName' konnte nicht gefunden werden (fehlt eine using-Direktive oder eine Assembly-Referenz?)
Diese Klasse befindet sich überhaupt nicht in einem Namespace. Irgendwelche Ideen?
Sie müssen codeSubDirectories zu Ihrem Kompilierungselement in web.config
hinzufügen %Vor%Überprüfen Sie die BuildAction-Eigenschaft der Datei. Dies sollte auf "Kompilieren"
eingestellt werdenIst es möglich, dass Sie den Ordner nicht als Anwendung in IIS (oder Ihrem Webserver) festgelegt haben? Wenn nicht, dann wird der App_Code verwendet, der vom übergeordneten Ordner (oder der nächsten Anwendung nach oben) verwendet wird.
Stellen Sie sicher, dass der Ordner als Anwendung markiert ist und die richtige Version von ASP.NET verwendet.
Es ist vielleicht nicht der richtige Weg, aber ich finde es am einfachsten.
Erstellen Sie die Klasse wie gewohnt im Hauptordner und bewegen Sie sie dann mit Ihrer Maus in Ihren Unterordner. Re-kompilieren und alles sollte in Ordnung sein.
Wenn Sie Ordner zu Ihrem app_code hinzufügen, werden sie durch verschiedene Namespaces getrennt, wenn ich mich richtig erinnere, indem Sie den Standard-Namespace als Root verwenden und dann für jeden Ordner hinzufügen.
In Visual Studio (zumindest 2010, aber ich erinnere mich auch an frühere Versionen) können Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Ordner klicken und dann "In Projekt einschließen" auswählen.
Dann auf der Registerkarte Eigenschaften für jede Datei (oder wählen Sie sie alle auf einmal), wählen Sie "Compile" für die Eigenschaft "Build Action".
Das hat für mich funktioniert.
Tags und Links c# asp.net namespaces app-code