Forum: PC-Programmierung C# CodeDomProvider vergisst oder ignoriert Assembly


von Farin (Gast)


Lesenswert?

Hei Leute


Ich habe ein Programm in C# geschrieben dass Plugins zur Laufzeit laden 
kann(als DLL) und diese benutzen kann. Aber ich habe ein kleines Problem 
mit dem CodeDomProvider.

Ich lade mit diesem Code die dll in meine exe rein:
1
byte[] filebytes = File.ReadAllBytes(ofd.FileName);
2
Assembly.Load(filebytes);

Danach greife ich auf die Assembly zu was auch wunderbar geht. Wenn ich 
aber mit folgendem Code eine C# Datei mit Link zu diesem Plugin 
kompilieren möchte, erhalte ich den Fehler dass die Referenz darauf 
fehlt. Der Code dazu wäre.
1
CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
2
CompilerParameters parameters = new CompilerParameters();
3
parameters.GenerateInMemory = true;  
4
var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => !a.IsDynamic).Select(a => a.Location);
5
parameters.ReferencedAssemblies.AddRange(assemblies.ToArray());
6
CompilerResults result = provider.CompileAssemblyFromSource(parameters, File.ReadAllText(file));

Ich hoffe ihr könnt mir sagen was ich falsch mache damit es bald 
funktioniert. Die Using Direktive ist in der Datei drin nur die Referenz 
sieht er irgendwie nicht..

Vielen Dank und Gruss

Farin

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.