Da molti esempi di compilazione di un Roslyn SyntaxTree, ho visto come ad esempio:Emit per DynamicAssembly con il codice di 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);
Ma quando provo a fare questo nella corrente Roslyn rilasciato con Visual Studio 2015 RC, Non vedo Emit()
che accetta un modulo. Devo scrivere su un flusso e caricarlo in un normale AppDomain
-locked Assembly
.
ho poi vedere questa risposta da Tomas Matousek: https://stackoverflow.com/a/22977158
dove dice che questo è stato rimosso perché era "problematico".
Ho difficoltà a trovare altre informazioni su questo su Internet. Qualcuno sa se:
- C'è un altro modo in Roslyn per compilare in un assembly che può essere garbage collection?
- O questo sarà supportato nella versione finale di VS/Roslyn?
- Dove dovrei dirigere questa domanda se nessuno lo sa (ha avuto problemi a trovare un forum ufficiale di Roslyn attivo)?
Il sito ufficiale di Roslyn attivo [è su github] (https://github.com/dotnet/roslyn). Se vuoi iniziare una discussione su qualcosa, crea un problema. – svick
Roslyn non è possibile finché il CLR non supporta gli assembly da collezione. Puoi votare per loro qui: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6120992-support-for-collectible-assemblies Su GitHub: https://github.com/dotnet/CoreCLR/temi/552 – JoshVarty