2015-05-09 13 views
5

Von vielen Beispielen für eine Roslyn SyntaxTree kompilieren, ich habe gesehen, Code wie:Emit zu DynamicAssembly mit Roslyn RC

[... create tree and compilation ...] 
var assembly = AppDomain.CurrentDomain.DefineDynamicAssembly(new AssemblyName("foo"), AssemblyBuilderAccess.RunAndCollect); 
var module = assembly.DefineDynamicModule("foo"); 

var result = compilation.Emit(module); 

Aber wenn ich versuche, diese Freigabe im aktuellen Roslyn zu tun mit Visual Studio 2015 RC, Ich sehe keine Emit(), die ein Modul braucht. Ich muss in einen Stream schreiben und es in einen normalen AppDomain -locked Assembly laden. sehen Sie diese Antwort von Tomas Matousek

ich dann: https://stackoverflow.com/a/22977158

Wo er sagt, dass diese entfernt wurde, weil es „problematisch“ sei.

Ich habe Schwierigkeiten, andere Informationen darüber im Internet zu finden. Weiß jemand, ob:

  • Gibt es eine andere Möglichkeit in Roslyn in eine Assembly kompilieren, die Garbage gesammelt werden kann?
  • Oder wird dies in der endgültigen Version von VS/Roslyn unterstützt?
  • Wo sollte ich diese Frage richten, wenn niemand hier weiß (hatte Probleme, ein offizielles, aktives Roslyn Forum zu finden)?
+2

Die offizielle, aktive Roslyn-Site [ist auf Github] (https://github.com/dotnet/roslyn). Wenn Sie eine Diskussion über etwas beginnen möchten, erstellen Sie ein Problem. – svick

+1

In Roslyn ist es nicht möglich, bis die CLR Sammelelemente unterstützt. Sie können für sie hier stimmen: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6120992-support-for-collectible-assemblies Auf GitHub: https://github.com/dotnet/corclecr/issues/552 – JoshVarty

Antwort

0

Wie svick und JoshVarty in den Kommentaren sagten, ist dies zur Zeit nicht möglich. Ich habe auch ein Problem (https://github.com/dotnet/roslyn/issues/2621) dafür erstellt, das mit einigen weiteren Informationen vom Microsoft-Team enden könnte oder auch nicht.