public static ProjectGenerationSettings GetProjectGenerationSettings(string assemblyFilePath, IAssemblyInfoService assemblyInfoService, IFrameworkResolver frameworkResolver, VisualStudioVersion visualStudioVersion, ILanguage language, ITargetPlatformResolver targetPlatformResolver) { AssemblyDefinition assembly = Telerik.JustDecompiler.Decompiler.Utilities.GetAssembly(assemblyFilePath); AssemblyInfo assemblyInfo = assemblyInfoService.GetAssemblyInfo(assembly, frameworkResolver, targetPlatformResolver); TargetPlatform targetPlatform = GlobalAssemblyResolver.Instance.GetTargetPlatform(assemblyFilePath, targetPlatformResolver); foreach (KeyValuePair <ModuleDefinition, FrameworkVersion> pair in assemblyInfo.ModulesFrameworkVersions) { if (pair.Value == FrameworkVersion.Unknown) { return(new ProjectGenerationSettings(true, ResourceStrings.GenerateOnlySourceFilesDueToUnknownFrameworkVersion, false)); } else if (pair.Value == FrameworkVersion.WindowsCE || (targetPlatform == TargetPlatform.WindowsPhone && pair.Value == FrameworkVersion.WindowsPhone) || (targetPlatform == TargetPlatform.WinRT && WinRTProjectTypeDetector.GetProjectType(assembly) == WinRTProjectType.Unknown)) { return(new ProjectGenerationSettings(true, ResourceStrings.GenerateOnlySourceFilesDueToNotSupportedProjectType, false)); } } string resultErrorMessage; if (visualStudioVersion == VisualStudioVersion.VS2010) { if (!CanBe2010ProjectCreated(assemblyInfo, targetPlatform, out resultErrorMessage)) { return(new ProjectGenerationSettings(false, resultErrorMessage)); } } else if (visualStudioVersion == VisualStudioVersion.VS2012) { if (!CanBe2012ProjectCreated(assembly, out resultErrorMessage)) { return(new ProjectGenerationSettings(false, resultErrorMessage)); } } else { if (targetPlatform == TargetPlatform.WinRT && language is IVisualBasic && WinRTProjectTypeDetector.GetProjectType(assembly) == WinRTProjectType.ComponentForUniversal) { resultErrorMessage = string.Format(ResourceStrings.CannotCreateProjectForComponentForUniversalInVB, visualStudioVersion.ToFriendlyString()); return(new ProjectGenerationSettings(false, resultErrorMessage)); } if (visualStudioVersion == VisualStudioVersion.VS2013) { if (!CanBe2013ProjectCreated(assembly, language, out resultErrorMessage)) { return(new ProjectGenerationSettings(false, resultErrorMessage)); } } } return(new ProjectGenerationSettings(true)); }
public static ProjectGenerationSettings GetProjectGenerationSettings(string assemblyFilePath, IAssemblyInfoService assemblyInfoService, IFrameworkResolver frameworkResolver, VisualStudioVersion visualStudioVersion, ILanguage language) { AssemblyDefinition assembly = Telerik.JustDecompiler.Decompiler.Utilities.GetAssembly(assemblyFilePath); AssemblyInfo assemblyInfo = assemblyInfoService.GetAssemblyInfo(assembly, frameworkResolver); foreach (KeyValuePair <ModuleDefinition, FrameworkVersion> pair in assemblyInfo.ModulesFrameworkVersions) { if (pair.Value == FrameworkVersion.Unknown) { return(new ProjectGenerationSettings(true, ResourceStrings.GenerateOnlySourceFilesDueToUnknownFrameworkVersion, false)); } else if (pair.Value == FrameworkVersion.WindowsCE || pair.Value == FrameworkVersion.WindowsPhone || (pair.Value == FrameworkVersion.WinRT && WinRTProjectTypeDetector.GetProjectType(assembly) == WinRTProjectType.Unknown)) { return(new ProjectGenerationSettings(true, ResourceStrings.GenerateOnlySourceFilesDueToNotSupportedProjectType, false)); } } string resultErrorMessage; if (visualStudioVersion == VisualStudioVersion.VS2010) { if (!CanBe2010ProjectCreated(assemblyInfo, out resultErrorMessage)) { return(new ProjectGenerationSettings(false, resultErrorMessage)); } } else if (visualStudioVersion == VisualStudioVersion.VS2012) { if (!CanBe2012ProjectCreated(assembly, out resultErrorMessage)) { return(new ProjectGenerationSettings(false, resultErrorMessage)); } } else if (visualStudioVersion == VisualStudioVersion.VS2013) { if (!CanBe2013ProjectCreated(assembly, language, out resultErrorMessage)) { return(new ProjectGenerationSettings(false, resultErrorMessage)); } } return(new ProjectGenerationSettings(true)); }
public static ProjectGenerationSettings GetProjectGenerationSettings(string assemblyFilePath, IAssemblyInfoService assemblyInfoService, IFrameworkResolver frameworkResolver, VisualStudioVersion visualStudioVersion, ILanguage language) { AssemblyDefinition assembly = Telerik.JustDecompiler.Decompiler.Utilities.GetAssembly(assemblyFilePath); AssemblyInfo assemblyInfo = assemblyInfoService.GetAssemblyInfo(assembly, frameworkResolver); foreach (KeyValuePair<ModuleDefinition, FrameworkVersion> pair in assemblyInfo.ModulesFrameworkVersions) { if (pair.Value == FrameworkVersion.Unknown) { return new ProjectGenerationSettings(true, ResourceStrings.GenerateOnlySourceFilesDueToUnknownFrameworkVersion, false); } else if (pair.Value == FrameworkVersion.WindowsCE || pair.Value == FrameworkVersion.WindowsPhone || (pair.Value == FrameworkVersion.WinRT && WinRTProjectTypeDetector.GetProjectType(assembly) == WinRTProjectType.Unknown)) { return new ProjectGenerationSettings(true, ResourceStrings.GenerateOnlySourceFilesDueToNotSupportedProjectType, false); } } string resultErrorMessage; if (visualStudioVersion == VisualStudioVersion.VS2010) { if (!CanBe2010ProjectCreated(assemblyInfo, out resultErrorMessage)) { return new ProjectGenerationSettings(false, resultErrorMessage); } } else if (visualStudioVersion == VisualStudioVersion.VS2012) { if (!CanBe2012ProjectCreated(assembly, out resultErrorMessage)) { return new ProjectGenerationSettings(false, resultErrorMessage); } } else if (visualStudioVersion == VisualStudioVersion.VS2013) { if (!CanBe2013ProjectCreated(assembly, language, out resultErrorMessage)) { return new ProjectGenerationSettings(false, resultErrorMessage); } } return new ProjectGenerationSettings(true); }