protected TimeSpan RunInternal(AssemblyDefinition assembly, GeneratorProjectInfo projectInfo, ProjectGenerationSettings settings) { OnProjectGenerationStarted(assembly); string projFilePath = Path.Combine(projectInfo.Out, Path.GetFileNameWithoutExtension(projectInfo.Target) + projectInfo.Language.VSProjectFileExtension + (settings.JustDecompileSupportedProjectType ? string.Empty : MSBuildProjectBuilder.ErrorFileExtension)); DecompilationPreferences preferences = new DecompilationPreferences(); preferences.WriteFullNames = false; preferences.WriteDocumentation = projectInfo.AddDocumentation; preferences.RenameInvalidMembers = projectInfo.RenameInvalidMembers; preferences.WriteLargeNumbersInHex = projectInfo.WriteLargeNumbersInHex; preferences.DecompileDangerousResources = projectInfo.DecompileDangerousResources; IFrameworkResolver frameworkResolver = new ConsoleFrameworkResolver(projectInfo.FrameworkVersion); ITargetPlatformResolver targetPlatformResolver = TargetPlatformResolver.Instance; BaseProjectBuilder projectBuilder = GetProjectBuilder(assembly, projectInfo, settings, projectInfo.Language, projFilePath, preferences, frameworkResolver, targetPlatformResolver); AttachProjectBuilderEventHandlers(projectBuilder); //As per https://github.com/telerik/JustDecompileEngine/pull/2 DateTime startTime = DateTime.UtcNow; projectBuilder.BuildProject(); TimeSpan projectGenerationTime = DateTime.UtcNow - startTime; DetachProjectBuilderEventHandlers(projectBuilder); return(projectGenerationTime); }
protected TimeSpan RunInternal(AssemblyDefinition assembly, GeneratorProjectInfo projectInfo, ProjectGenerationSettings settings) { string projFilePath = Path.Combine(projectInfo.Out, Path.GetFileNameWithoutExtension(projectInfo.Target) + projectInfo.Language.VSProjectFileExtension + (settings.JustDecompileSupportedProjectType ? string.Empty : MSBuildProjectBuilder.ErrorFileExtension)); DecompilationPreferences preferences = new DecompilationPreferences(); preferences.WriteFullNames = false; preferences.WriteDocumentation = projectInfo.AddDocumentation; preferences.RenameInvalidMembers = projectInfo.RenameInvalidMembers; IFrameworkResolver frameworkResolver = new ConsoleFrameworkResolver(projectInfo.FrameworkVersion); MSBuildProjectBuilder projectBuilder = GetProjectBuilder(assembly, projectInfo, settings, projectInfo.Language, projFilePath, preferences, frameworkResolver); ConfigurateProjectBuilder(projectBuilder); DateTime startTime = DateTime.Now; projectBuilder.BuildProject(); TimeSpan projectGenerationTime = DateTime.Now - startTime; return(projectGenerationTime); }