Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
CodeDomProvider: FileNotFoundException bei Ordnerstruktur
CSharperUser
myCSharp.de - Member



Dabei seit:
Beiträge: 81

Themenstarter:

CodeDomProvider: FileNotFoundException bei Ordnerstruktur

beantworten | zitieren | melden

Hallo zusammen,

folgende Problematik habe ich:

Angenommen, es existiert ein C#-Projekt mit folgender Struktur:

Project.csproj
- BL (Ordner)
- Class1 (in BL-Ordner)
- Class2

In Class2 wird Class1 verwendet. Hierzu wird eine using-Direktive verwendet:


using Project.BL; 
...
public class Class1
{
   ... //Definition
}

Wenn ich jetzt Class1 mit dem CodeDomProvider und der Methode CompileAssemblyFromSource kompiliere, erhalte ich aus der rückgegebenen ErrorCollection eine FileNotFoundException:
Fehler
Die Datei oder Assembly BL kann nicht gefunden werden. (Verweis fehlt?)

Die notwendigen referenzierten Assemblies habe ich der Providerinstanz bereits hinzugefügt.

Wie kann ich dieses Problem mit der Ordnerstruktur/using-Direktive lösen?
private Nachricht | Beiträge des Benutzers
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

beantworten | zitieren | melden

Hallo,

ich glaube Du verwechselst Da was. Mit using referenzierst Du keine Ordner, sondern namespaces.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo CSharperUser,

die Fehlermeldung sieht so aus, als würdest du versuchen, den Ordner zu referenzieren. Du musst aber immer konkrete Assembly-Dateien referenzieren.

herbivore
private Nachricht | Beiträge des Benutzers
CSharperUser
myCSharp.de - Member



Dabei seit:
Beiträge: 81

Themenstarter:

beantworten | zitieren | melden

Da hab ich mich wohl falsch ausgedrückt. Ich verweise natürlich auf einen Namespace. Die Klasse Class2 liegt nun aber im Namespace Project.BL und deshalb muss ja eine using-Anweisung hinzugefügt werden. Heißt das jetzt, dass es so nicht funktionieren würde? Dann wäre die CodeDomProvider-Klasse zum Kompilieren unnütz.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo CSharperUser,
Zitat
Ich verweise natürlich auf einen Namespace.
wenn du das tatsächlich tust, wäre das falsch. Du musst auf Assembies (also auf DLL-Dateien) verweisen.

Siehe auch [FAQ] CS0234 / CS0246 - Der Typ- oder Namespacename "Foo" konnte nicht gefunden werden.

Bitte beachte vorsorglich [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

herbivore
private Nachricht | Beiträge des Benutzers