2
솔루션을 컴파일하려고하는데 저장하려고하면 애매한 오류 메시지가 나타납니다.Roslyn으로 컴파일
익명 유형은 <> __ 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'라는 것이 있습니까? 또는 컴파일러 메시지에서 실제 유형 이름을 변경 했습니까? Roslyn의 어딘가에서 'blahblah'를 출력하는 테스트 코드가 남아 있다면 꽤 재미있을 것입니다. –
@MagnusGrindalBakken 예 재미 있었을 지 모르지만 나는 그것을 바 꾸었습니다. 그것은 더 많이 같았습니다. <> _ AnnonymousType5'2' –
Roslyn의 버그처럼 들리 겠지만 아마도 그것을보고해야합니다. – svick