Hallo zusammen,
folgende Problematik habe ich:
Angenommen, es existiert ein C#-Projekt mit folgender Struktur:
Project.csproj
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?
Hallo,
ich glaube Du verwechselst Da was. Mit using referenzierst Du keine Ordner, sondern namespaces.
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
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.
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