Od wielu przykładów kompilacji Roslyn SyntaxTree, widziałem kodu takich jak:Emit do DynamicAssembly z 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);
Ale gdy próbuję to zrobić w obecnej Roslyn zwolniony z Visual Studio 2015 RC, Nie widzę Emit()
, który pobiera moduł. Muszę napisać do strumienia i załadować go do zwykłego AppDomain
-locked Assembly
.
I wtedy zobaczyć tę odpowiedź z Tomasem Matousek: https://stackoverflow.com/a/22977158
Jeżeli mówi, że został usunięty, ponieważ był „problematyczne”.
Mam trudności ze znalezieniem jakichkolwiek innych informacji na ten temat w Internecie. Czy ktoś wie, czy:
- Jest inny sposób w Roslyn, aby skompilować się do zespołu, który może być zbierane śmieci?
- Czy będzie to obsługiwane w ostatecznej wersji VS/Roslyn?
- Gdzie powinienem skierować to pytanie, jeśli nikt o tym nie wie (miał problem ze znalezieniem oficjalnego, aktywnego forum Roslyn)?
Oficjalna, aktywna strona Roslyn [jest na github] (https://github.com/dotnet/roslyn). Jeśli chcesz rozpocząć dyskusję o czymś, utwórz problem. – svick
Nie jest to możliwe w obrębie Roslyn, dopóki CLR nie obsługuje zestawów kolekcjonerskich. Możesz głosować na nie tutaj: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/6120992-support-for-collectible-semsemblies Na GitHub: https://github.com/dotnet/coreclr/issues/552 – JoshVarty