Liefern Assembly zu CompilerParameters ReferencedAssemblies aus dem Speicher und nicht von der Festplatte?

9

Ich habe ein CompilerParameters -Objekt, das ich verwende, um ein Microsoft.CSharp.CSharpCodeProvider -Objekt und ein ICodeCompiler -Objekt, das davon abgeleitet ist, zu füttern.

Alles funktioniert gut und ich kann den Code im laufenden Betrieb kompilieren. Mein Problem ist mit den referenzierten Assemblys. Im Moment füge ich einfach alle Assemblies von System.Reflection.Assembly.GetExecutingAssembly().GetReferencedAssemblies() in den ReferencedAssemblies des Compiler-Parameters ein. Dies funktioniert für Dateien auf der Festplatte. Ich habe jedoch eine Assembly, die im Speicher und nicht auf der Festplatte ist. Wenn ich versuche, darauf zu verweisen, erhalte ich FileNotFoundException , was ich erwarte, da es versucht, einen Pfad hinzuzufügen, der nicht existiert.

Wie gebe ich ein tatsächliches Assembly Objekt an CompilerParameters.ReferencedAssemblies ?

weiter

Ich habe einige Posts aus dem Jahr 2006 und davor gesehen, dass es einfach nicht möglich ist. Ich hoffe mit .net 3.5 und .net 4.0 die Unterstützung für diese Art von Sache wurde hinzugefügt, aber ich bin mir nicht sicher.

Zu Ihrer Information, ich benutze .NET 4.0

Außerdem erstelle ich gerade eine temporäre Datei aus dem Byte [] im Programmbereich und lade diese Datei dann in eine Assembly. Ich weiß, der Compiler macht das im Hintergrund, aber es räumt auch nach sich selbst auf, glaube ich. Es wäre großartig, wenn ich es könnte:

%Vor%     
Nick 12.04.2011, 20:03
quelle

1 Antwort

0

Sie haben also speicherinterne Assembly, die Sie als Referenz hinzufügen möchten?

Ich bin nicht sicher, ob ein solcher Ansatz von CSharpCodeProvider unterstützt wird.

    
abatishchev 14.04.2011 11:22
quelle

Tags und Links