Laden...

CodeDomProvider: FileNotFoundException bei Ordnerstruktur

Erstellt von CSharperUser vor 10 Jahren Letzter Beitrag vor 10 Jahren 984 Views
C
CSharperUser Themenstarter:in
80 Beiträge seit 2010
vor 10 Jahren
CodeDomProvider: FileNotFoundException bei Ordnerstruktur

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:

Fehlermeldung:
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?

M
171 Beiträge seit 2012
vor 10 Jahren

Hallo,

ich glaube Du verwechselst Da was. Mit using referenzierst Du keine Ordner, sondern namespaces.

49.485 Beiträge seit 2005
vor 10 Jahren

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

C
CSharperUser Themenstarter:in
80 Beiträge seit 2010
vor 10 Jahren

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.

49.485 Beiträge seit 2005
vor 10 Jahren

Hallo CSharperUser,

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