Я пытаюсь скомпилировать решение, но получаю сообщение об ошибке, когда пытаюсь сохранить.Компиляция с Roslyn
типа Anonymous <> __ blahblah не завершено
Однако в источнике скомпилированного нет никаких анонимных типов вообще.
код
private static void Compile(ISolution solution)
{
var workspaceServices = (IHaveWorkspaceServices)solution;
var projectDependencyService = workspaceServices.WorkspaceServices.GetService<IProjectDependencyService>();
foreach (var projectId in projectDependencyService.GetDependencyGraph(solution).GetTopologicallySortedProjects())
{
var currentDomain = AppDomain.CurrentDomain;
var assemblyName = new AssemblyName();
assemblyName.Name = "Most." + solution.GetProject(projectId).AssemblyName;
var assemblyBuilder = currentDomain.DefineDynamicAssembly
(assemblyName, AssemblyBuilderAccess.RunAndSave);
var moduleBuilder = assemblyBuilder.
DefineDynamicModule(assemblyName.Name);
var types = moduleBuilder.GetTypes();
types.Aggregate((ts, t) =>
{
var tb = t as TypeBuilder;
return tb.CreateType();
});
solution.GetProject(projectId).GetCompilation().Emit(moduleBuilder);
assemblyBuilder.Save(assemblyName.Name);
}
}
В коде есть что-то действительно называемое 'blahblah'? Или вы изменили фактическое имя типа из сообщения компилятора? Было бы довольно весело, если бы остался тестовый код, который печатает «блаббаль» где-то в Рослине. –
@MagnusGrindalBakken да, это было бы весело, но я это изменил. это было больше похоже на «<> _ AnnonymousType5'2' –
Это звучит как ошибка в Roslyn для меня, вам, вероятно, следует сообщить об этом. – svick