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)?
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
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