2015-05-09 13 views
5

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

Oficjalna, aktywna strona Roslyn [jest na github] (https://github.com/dotnet/roslyn). Jeśli chcesz rozpocząć dyskusję o czymś, utwórz problem. – svick

+1

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

Odpowiedz