protected override bool UpgradeProject(IProjectStore projectStore, ConversionType initialVersion, ConversionType targetVersion) { ProjectLanguage projectLanguage = ProjectStoreHelper.GetProjectLanguage(projectStore); if (projectLanguage != ProjectLanguage.CSharp && projectLanguage != ProjectLanguage.VisualBasic) { return(false); } if (targetVersion != ConversionType.WebAppProject10) { return(false); } string[] array = projectStore.ProjectImports.ToArray <string>(); for (int i = 0; i < (int)array.Length; i++) { string str = array[i]; if (WebProjectConverter.webApplicationTargetVersion.Match(str).Success&& !projectStore.ChangeImport(str, "$(MSBuildExtensionsPath32)\\Microsoft\\VisualStudio\\v10.0\\WebApplications\\Microsoft.WebApplication.targets")) { return(false); } } if (!projectStore.SetStoreVersion(CommonVersions.Version4_0)) { return(false); } return(true); }
public override ConversionType GetVersion(ConversionTarget file) { if (!file.IsProject) { return(ConversionType.Unknown); } IProjectStore projectStore = file.ProjectStore; if (Microsoft.Expression.Framework.Interop.TypeHelper.ConvertType <bool>(projectStore.GetProperty("WindowsCEEnabled")) || Microsoft.Expression.Framework.Interop.TypeHelper.ConvertType <bool>(projectStore.GetProperty("SilverlightMobile"))) { return(ConversionType.Unsupported); } Version silverlightVersion = ProjectStoreHelper.GetSilverlightVersion(projectStore); if (silverlightVersion == CommonVersions.Version2_0) { return(ConversionType.ProjectSilverlight2); } if (silverlightVersion == CommonVersions.Version3_0) { return(ConversionType.ProjectSilverlight3); } if (silverlightVersion == CommonVersions.Version4_0) { return(ConversionType.ProjectSilverlight4); } return(ConversionType.Unknown); }
public override ConversionType GetVersion(ConversionTarget file) { if (!file.IsProject) { return(ConversionType.Unknown); } FrameworkName targetFrameworkName = ProjectStoreHelper.GetTargetFrameworkName(file.ProjectStore); if (targetFrameworkName == null || targetFrameworkName.Identifier != ".NETFramework") { return(ConversionType.Unknown); } if (ProjectStoreHelper.UsesWpf(file.ProjectStore)) { if (targetFrameworkName.Version == CommonVersions.Version3_0) { return(ConversionType.ProjectWpf30); } if (targetFrameworkName.Version == CommonVersions.Version3_5) { return(ConversionType.ProjectWpf35); } if (targetFrameworkName.Version == CommonVersions.Version4_0) { return(ConversionType.ProjectWpf40); } } return(ConversionType.Unknown); }
public override void Execute() { this.HandleBasicExceptions(() => { using (ProjectUpgradeLogger projectUpgradeLogger = new ProjectUpgradeLogger()) { IProject project = this.SelectedProjectOrNull(); ISolutionManagement solutionManagement = this.Solution() as ISolutionManagement; if (base.Services.PromptUserYesNo(StringTable.UpgradeProjectWarning)) { if (this.SaveSolution(true)) { if (this.SaveSolution(true)) { DocumentReference documentReference = project.DocumentReference; solutionManagement.CloseProject(project); IProjectStore projectStore = null; try { projectStore = ProjectStoreHelper.CreateProjectStore(documentReference, base.Services, ProjectStoreHelper.DefaultProjectCreationChain); using (IDisposable disposable = this.SuspendWatchers()) { if (this.converter.Convert(new ConversionTarget(projectStore), this.sourceType, this.targetType)) { using (IDisposable disposable1 = projectUpgradeLogger.SuspendLogging()) { projectStore.Dispose(); projectStore = ProjectStoreHelper.CreateProjectStore(documentReference, base.Services, ProjectStoreHelper.DefaultProjectCreationChain); if (solutionManagement.AddProject(projectStore) == null) { projectStore.Dispose(); } } solutionManagement.OpenInitialViews(); } else { projectStore.Dispose(); return; } } UpgradeWizard.SaveLogAndPromptUser(projectUpgradeLogger, base.Services, solutionManagement.DocumentReference.Path, true); } catch { if (projectStore != null) { projectStore.Dispose(); } UpgradeWizard.SaveLogAndPromptUser(projectUpgradeLogger, base.Services, solutionManagement.DocumentReference.Path, false); throw; } } } } } }); }
public override bool IsValidTypeForProject(IProjectStore projectStore) { FrameworkName targetFrameworkName = ProjectStoreHelper.GetTargetFrameworkName(projectStore); if (targetFrameworkName == (FrameworkName)null || targetFrameworkName.Identifier != ".NETFramework" || !(targetFrameworkName.Version == CommonVersions.Version3_5) && !(targetFrameworkName.Version == CommonVersions.Version4_0) || !base.IsValidTypeForProject(projectStore)) { return(false); } return(ProjectStoreHelper.UsesWpf(projectStore)); }
public override void Execute() { this.HandleBasicExceptions(() => { string str = base.SelectProject(this.DisplayName); if (!string.IsNullOrEmpty(str)) { IProjectStore projectStore = ProjectStoreHelper.CreateProjectStore(DocumentReference.Create(str), base.Services, ProjectStoreHelper.ResilientProjectCreationChain); if (projectStore == null) { return; } UpgradeWizard upgradeWizard = new UpgradeWizard(this.Solution() as ISolutionManagement, from project in this.Solution().Projects.OfType <ProjectBase>() select project.ProjectStore, projectStore, null, base.Services); try { if (!upgradeWizard.Upgrade()) { return; } } finally { projectStore.Dispose(); projectStore = null; } projectStore = ProjectStoreHelper.CreateProjectStore(DocumentReference.Create(str), base.Services, ProjectStoreHelper.DefaultProjectCreationChain); if (projectStore == null) { return; } INamedProject namedProject = null; try { namedProject = this.ProjectManager().AddProject(projectStore); if (namedProject != null) { base.UpdateSourceControl(EnumerableExtensions.AsEnumerable <INamedProject>(namedProject)); base.ActivateProjectPane(); } } finally { if (namedProject == null && projectStore != null) { projectStore.Dispose(); projectStore = null; } } } }); }
public static ProjectLicenseGroup GetLicenseGroup(IProjectStore projectStore) { if (ProjectStoreHelper.IsSketchFlowProject(projectStore)) { return(ProjectLicenseGroup.SketchFlow); } FrameworkName targetFrameworkName = ProjectStoreHelper.GetTargetFrameworkName(projectStore); if (targetFrameworkName != null && !string.IsNullOrEmpty(targetFrameworkName.Profile) && targetFrameworkName.Profile.Equals("WindowsPhone", StringComparison.OrdinalIgnoreCase)) { return(ProjectLicenseGroup.SilverlightMobile); } return(ProjectLicenseGroup.WpfSilverlight); }
public override IProjectCreateError CanCreateProject(IProjectStore projectStore) { if (!new SilverlightChecker(this.serviceProvider).IsAvailable) { return((IProjectCreateError) new ProjectCreateError("DoNotWarnAboutSilverlightNotInstalled", StringTable.SilverlightNotInstalled)); } FrameworkName targetFrameworkName = ProjectStoreHelper.GetTargetFrameworkName(projectStore); if (targetFrameworkName != (FrameworkName)null && targetFrameworkName.Identifier.Equals(SilverlightProjectType.MobileFrameworkName.Identifier, StringComparison.OrdinalIgnoreCase) && (targetFrameworkName.Profile.Equals(SilverlightProjectType.MobileFrameworkName.Profile, StringComparison.OrdinalIgnoreCase) && targetFrameworkName.Version >= SilverlightProjectType.MobileFrameworkName.Version) && !ProjectAdapterHelper.IsTargetFrameworkSupported(this.serviceProvider, targetFrameworkName)) { return((IProjectCreateError) new ProjectCreateError("DoNotWarnAboutWindowsPhoneNotInstalled", StringTable.WindowsPhoneNotInstalled)); } return((IProjectCreateError)null); }
protected override bool UpgradeProject(IProjectStore projectStore, ConversionType initialVersion, ConversionType targetVersion) { if (targetVersion != ConversionType.BuildToolsVersion40) { return(false); } Version silverlightVersion = ProjectStoreHelper.GetSilverlightVersion(projectStore); if (silverlightVersion == null) { return(projectStore.SetStoreVersion(CommonVersions.Version4_0)); } return(SilverlightProjectConverter.ChangeImportPath(projectStore, silverlightVersion.ToString())); }
public override bool IsValidTypeForProject(IProjectStore projectStore) { FrameworkName targetFrameworkName = ProjectStoreHelper.GetTargetFrameworkName(projectStore); if (targetFrameworkName == (FrameworkName)null || targetFrameworkName.Identifier != "Silverlight" || !(targetFrameworkName.Version == CommonVersions.Version3_0) && !(targetFrameworkName.Version == CommonVersions.Version4_0)) { return(false); } string property = projectStore.GetProperty("OutputType"); if (string.IsNullOrEmpty(property) || !property.Equals("Library", StringComparison.OrdinalIgnoreCase)) { return(false); } return(base.IsValidTypeForProject(projectStore)); }
public override ConversionType GetVersion(ConversionTarget file) { ConversionType conversionType; if (!file.IsProject) { return(ConversionType.Unknown); } FrameworkName targetFrameworkName = ProjectStoreHelper.GetTargetFrameworkName(file.ProjectStore); if (targetFrameworkName == null || targetFrameworkName.Identifier != ".NETFramework") { return(ConversionType.Unknown); } string property = file.ProjectStore.GetProperty("ProjectTypeGuids"); if (!string.IsNullOrEmpty(property) && property.IndexOf("{349c5851-65df-11da-9384-00065b846f21}", StringComparison.OrdinalIgnoreCase) != -1) { using (IEnumerator <string> enumerator = file.ProjectStore.ProjectImports.GetEnumerator()) { while (enumerator.MoveNext()) { string current = enumerator.Current; Match match = WebProjectConverter.webApplicationTargetVersion.Match(current); if (!match.Success || !string.Equals(match.Groups["version"].Value, "v9.0", StringComparison.OrdinalIgnoreCase)) { continue; } conversionType = ConversionType.WebAppProject9; return(conversionType); } return(ConversionType.Unknown); } return(conversionType); } return(ConversionType.Unknown); }
public override ConversionType GetVersion(ConversionTarget project) { if (project.IsProject && ProjectStoreHelper.DoesLanguageSupportXaml(project.ProjectStore)) { Version storeVersion = project.ProjectStore.StoreVersion; if (storeVersion == CommonVersions.Version2_0) { return(ConversionType.BuildToolsVersion20); } if (storeVersion == CommonVersions.Version3_5) { return(ConversionType.BuildToolsVersion35); } if (storeVersion == CommonVersions.Version4_0) { return(ConversionType.BuildToolsVersion40); } if (storeVersion == null) { return(ConversionType.BuildToolsVersionNone); } } return(ConversionType.Unknown); }
internal static bool ChangeImportPath(IProjectStore projectStore, string newVersion) { string str; ProjectLanguage projectLanguage = ProjectStoreHelper.GetProjectLanguage(projectStore); if (!ProjectStoreHelper.DoesLanguageSupportXaml(projectLanguage)) { return(false); } switch (projectLanguage) { case ProjectLanguage.CSharp: { str = "$(MSBuildExtensionsPath32)\\Microsoft\\Silverlight\\$(SilverlightVersion)\\Microsoft.Silverlight.CSharp.targets"; break; } case ProjectLanguage.FSharp: { return(false); } case ProjectLanguage.VisualBasic: { str = "$(MSBuildExtensionsPath32)\\Microsoft\\Silverlight\\$(SilverlightVersion)\\Microsoft.Silverlight.VisualBasic.targets"; break; } default: { return(false); } } string[] array = ProjectStoreHelper.GetSilverlightImports(projectStore).ToArray <string>(); if ((int)array.Length != 0) { string[] strArrays = array; for (int i = 0; i < (int)strArrays.Length; i++) { if (!projectStore.ChangeImport(strArrays[i], str)) { return(false); } } } else { projectStore.AddImport(str); } projectStore.SetProperty("TargetFrameworkVersion", string.Concat("v", newVersion)); projectStore.SetProperty("TargetFrameworkIdentifier", "Silverlight"); projectStore.SetProperty("SilverlightVersion", "$(TargetFrameworkVersion)"); projectStore.SetStoreVersion(CommonVersions.Version4_0); foreach (IProjectItemData item in projectStore.GetItems("Reference")) { string metadata = item.GetMetadata("RequiredTargetFramework"); if (string.IsNullOrEmpty(metadata) || !metadata.Trim().Equals("3.5", StringComparison.Ordinal)) { continue; } item.SetItemMetadata("RequiredTargetFramework", "3.0"); } return(true); }
internal UpgradeWizard.UpgradeResponse PromptToUpgrade(Dictionary <ConversionType, ConversionType> conversionMapping, out bool?doNotShowAgain, ref string backupLocation, out IEnumerable <UpgradeAction> proposedUpgrades) { doNotShowAgain = null; proposedUpgrades = Enumerable.Empty <UpgradeAction>(); List <UpgradeAction> list = this.GetProposedUpgrades(conversionMapping).ToList <UpgradeAction>(); if (list.Count == 0) { return(UpgradeWizard.UpgradeResponse.DontUpgrade); } List <ConversionType> conversionTypes = new List <ConversionType>(); List <ConversionType> conversionTypes1 = new List <ConversionType>(); bool flag = false; bool flag1 = false; if (!this.sketchFlowSolution) { using (IEnumerator <ConversionTarget> enumerator = this.GetConversionTargets().GetEnumerator()) { do { Label0: if (!enumerator.MoveNext()) { break; } ConversionTarget current = enumerator.Current; FrameworkName targetFrameworkName = ProjectStoreHelper.GetTargetFrameworkName(current.ProjectStore); if (targetFrameworkName == null || targetFrameworkName.Version == CommonVersions.Version4_0) { goto Label0; } else if (flag || !ProjectStoreHelper.UsesSilverlight(current.ProjectStore) || targetFrameworkName.Version.Major <= 1) { if (flag1 || !ProjectStoreHelper.UsesWpf(current.ProjectStore) || !(targetFrameworkName.Version >= CommonVersions.Version3_0)) { continue; } flag1 = true; } else { flag = true; } }while (!flag1 || !flag); } if (flag1) { conversionTypes1.Add(ConversionType.ProjectWpf35); conversionTypes1.Add(ConversionType.ProjectWpf40); } if (flag) { conversionTypes.Add(ConversionType.ProjectSilverlight3); conversionTypes.Add(ConversionType.ProjectSilverlight4); } } bool flag2 = this.targetStore != null; bool flag3 = !flag2; bool flag4 = !flag2; UpgradeProjectDialog upgradeProjectDialog = new UpgradeProjectDialog(base.Services.ExpressionInformationService(), conversionTypes, conversionTypes1, flag3, flag4); ProjectDialogResult projectDialogResult = upgradeProjectDialog.ShowProjectDialog(); doNotShowAgain = new bool?(upgradeProjectDialog.DoNotShowAgain); if (upgradeProjectDialog.Backup && projectDialogResult == ProjectDialogResult.Yes) { string parentDirectory = Microsoft.Expression.Framework.Documents.PathHelper.GetParentDirectory(Microsoft.Expression.Framework.Documents.PathHelper.GetDirectory(base.Solution.DocumentReference.Path)); CultureInfo invariantCulture = CultureInfo.InvariantCulture; string newNameCopyTemplate = StringTable.NewNameCopyTemplate; object[] fileNameWithoutExtension = new object[] { Path.GetFileNameWithoutExtension(base.Solution.DocumentReference.DisplayName) }; string availableFileOrDirectoryName = string.Format(invariantCulture, newNameCopyTemplate, fileNameWithoutExtension); availableFileOrDirectoryName = Microsoft.Expression.Framework.Documents.PathHelper.GetAvailableFileOrDirectoryName(availableFileOrDirectoryName, null, parentDirectory, false); backupLocation = Path.Combine(parentDirectory, availableFileOrDirectoryName); string str = backupLocation; Exception exception1 = null; using (IDisposable disposable = TemporaryCursor.SetWaitCursor()) { ErrorHandling.HandleBasicExceptions(() => ProjectManager.CopyDirectory(Microsoft.Expression.Framework.Documents.PathHelper.GetDirectory(this.Solution.DocumentReference.Path), str), (Exception exception) => exception1 = exception); } if (exception1 != null) { ErrorArgs errorArg = new ErrorArgs() { Message = StringTable.UpgradeBackupFailed, Exception = exception1, AutomationId = "BackupProjectErrorDialog" }; base.Services.MessageDisplayService().ShowError(errorArg); return(UpgradeWizard.UpgradeResponse.Cancel); } } switch (projectDialogResult) { case ProjectDialogResult.Yes: { if (this.sketchFlowSolution) { proposedUpgrades = list; } else { this.VersionMapping[ConversionType.ProjectSilverlight2] = upgradeProjectDialog.SelectedSilverlightVersion; this.VersionMapping[ConversionType.ProjectSilverlight3] = upgradeProjectDialog.SelectedSilverlightVersion; this.VersionMapping[ConversionType.ProjectWpf30] = upgradeProjectDialog.SelectedDotNetVersion; this.VersionMapping[ConversionType.ProjectWpf35] = upgradeProjectDialog.SelectedDotNetVersion; proposedUpgrades = this.GetProposedUpgrades(conversionMapping); } return(UpgradeWizard.UpgradeResponse.Upgrade); } case ProjectDialogResult.No: { return(UpgradeWizard.UpgradeResponse.DontUpgrade); } } return(UpgradeWizard.UpgradeResponse.Cancel); }
public override ConversionType GetVersion(ConversionTarget project) { ConversionType conversionType; this.silverlightSolution = false; this.sketchFlowSolution = false; this.frameworkSolution = false; if (!project.IsSolution) { return(ConversionType.Unknown); } using (IEnumerator <IProjectStore> enumerator = this.contextProjectStores.GetEnumerator()) { do { if (!enumerator.MoveNext()) { break; } IProjectStore current = enumerator.Current; FrameworkName targetFrameworkName = ProjectStoreHelper.GetTargetFrameworkName(current); if (targetFrameworkName == null) { continue; } if (!this.frameworkSolution && targetFrameworkName.Identifier == ".NETFramework") { this.frameworkSolution = true; } if (!this.silverlightSolution && targetFrameworkName.Identifier == "Silverlight") { this.silverlightSolution = true; } if (this.sketchFlowSolution || !ProjectStoreHelper.IsSketchFlowProject(current)) { continue; } this.sketchFlowSolution = true; }while (!this.silverlightSolution || !this.sketchFlowSolution || !this.frameworkSolution); } if (!this.silverlightSolution && !this.frameworkSolution) { return(ConversionType.Unknown); } ILicenseService service = base.Services.GetService <ILicenseService>(); if (this.sketchFlowSolution && service != null && !LicensingHelper.IsSketchFlowLicensed(service)) { return(ConversionType.Unknown); } using (IEnumerator <ConversionTarget> enumerator1 = this.GetConversionTargets().GetEnumerator()) { while (enumerator1.MoveNext()) { ConversionTarget conversionTarget = enumerator1.Current; if (!ConversionHelper.CheckAndAddFile(conversionTarget, this.Converters, this.VersionMapping, true).Any <UpgradeAction>()) { continue; } conversionType = ConversionType.SolutionBlendV3; return(conversionType); } return(ConversionType.SolutionBlendV4); } return(conversionType); }
protected override bool UpgradeProject(IProjectStore projectStore, ConversionType initialVersion, ConversionType targetVersion) { ProjectLanguage projectLanguage = ProjectStoreHelper.GetProjectLanguage(projectStore); if (projectLanguage != ProjectLanguage.CSharp && projectLanguage != ProjectLanguage.VisualBasic) { return(false); } string str = null; ConversionType conversionType = targetVersion; switch (conversionType) { case ConversionType.ProjectWpf30: { str = "v3.0"; break; } case ConversionType.ProjectWpf35: { str = "v3.5"; break; } case ConversionType.ProjectWpf40: { str = "v4.0"; break; } default: { switch (conversionType) { case ConversionType.Unsupported: case ConversionType.DoNothing: case ConversionType.Unknown: { return(true); } default: { return(false); } } break; } } WpfToolkitRemover.Update(projectStore, base.Context, initialVersion, targetVersion); if (!projectStore.SetProperty("TargetFrameworkVersion", str)) { return(false); } if (!projectStore.SetStoreVersion(CommonVersions.Version4_0)) { return(false); } if (targetVersion == ConversionType.ProjectWpf40 && !this.HandleVersion4Upgrade(projectStore)) { return(false); } AssemblyReferenceHelper.RepairAssemblyReferences(projectStore); return(true); }