public override void UpgradeProject(CompilerVersion newVersion, TargetFramework newFramework) { var project = (CompilableProject)Project; var newFx = newFramework as PortableTargetFramework; if (newFramework != null && newFx == null) { // convert to normal .NET project (not portable) Core.AnalyticsMonitorService.TrackFeature(GetType(), "DowngradePortableLibrary"); project.PerformUpdateOnProjectFile( delegate { foreach (var import in project.MSBuildProjectFile.Imports) { if (import.Project.EndsWith(PortableCSharpTargets, StringComparison.OrdinalIgnoreCase)) { import.Project = NormalTargetsPath + NormalCSharpTargets; break; } else if (import.Project.EndsWith(PortableVBTargets, StringComparison.OrdinalIgnoreCase)) { import.Project = NormalTargetsPath + NormalVBTargets; break; } } }); project.RemoveProjectType(ProjectTypeGuids.PortableLibrary); AddReferenceIfNotExists("System"); AddReferenceIfNotExists("System.Xml"); if (newFramework.IsBasedOn(TargetFramework.Net35) || newFramework.IsBasedOn(TargetFramework.Net35Client)) { AddReferenceIfNotExists("System.Core"); } base.UpgradeProject(newVersion, newFramework); return; } lock (project.SyncRoot) { if (newVersion != null && GetAvailableCompilerVersions().Contains(newVersion)) { project.SetToolsVersion(newVersion.MSBuildVersion.Major + "." + newVersion.MSBuildVersion.Minor); } if (newFx != null) { project.SetProperty(null, null, "TargetFrameworkProfile", newFx.TargetFrameworkProfile, PropertyStorageLocations.Base, true); project.SetProperty(null, null, "TargetFrameworkVersion", newFx.TargetFrameworkVersion, PropertyStorageLocations.Base, true); } project.Save(); ProjectBrowserPad.RefreshViewAsync(); } }
public override void UpgradeProject(CompilerVersion newVersion, TargetFramework newFramework) { var project = (CompilableProject)Project; var newFx = newFramework as PortableTargetFramework; if (newFramework != null && newFx == null) { // convert to normal .NET project (not portable) SD.AnalyticsMonitor.TrackFeature(GetType(), "DowngradePortableLibrary"); project.PerformUpdateOnProjectFile( delegate { foreach (var import in project.MSBuildProjectFile.Imports) { if (import.Project.EndsWith(PortableCSharpTargets, StringComparison.OrdinalIgnoreCase)) { import.Project = NormalTargetsPath + NormalCSharpTargets; break; } else if (import.Project.EndsWith(PortableVBTargets, StringComparison.OrdinalIgnoreCase)) { import.Project = NormalTargetsPath + NormalVBTargets; break; } } }); project.RemoveProjectType(ProjectTypeGuids.PortableLibrary); AddReferenceIfNotExists("System"); AddReferenceIfNotExists("System.Xml"); if (newFramework.IsBasedOn(TargetFramework.Net35) || newFramework.IsBasedOn(TargetFramework.Net35Client)) AddReferenceIfNotExists("System.Core"); base.UpgradeProject(newVersion, newFramework); return; } lock (project.SyncRoot) { if (newVersion != null && GetAvailableCompilerVersions().Contains(newVersion)) { project.ToolsVersion = newVersion.MSBuildVersion.Major + "." + newVersion.MSBuildVersion.Minor; } if (newFx != null) { project.SetProperty(null, null, "TargetFrameworkProfile", newFx.TargetFrameworkProfile, PropertyStorageLocations.Base, true); project.SetProperty(null, null, "TargetFrameworkVersion", newFx.TargetFrameworkVersion, PropertyStorageLocations.Base, true); } project.Save(); ProjectBrowserPad.RefreshViewAsync(); } }
public virtual void UpgradeProject(CompilerVersion newVersion, TargetFramework newFramework) { if (!this.ReadOnly) { lock (SyncRoot) { TargetFramework oldFramework = this.CurrentTargetFramework; if (newVersion != null && GetAvailableCompilerVersions().Contains(newVersion)) { SetToolsVersion(newVersion.MSBuildVersion.Major + "." + newVersion.MSBuildVersion.Minor); } if (newFramework != null) { UpdateAppConfig(newFramework); ClientProfileTargetFramework clientProfile = newFramework as ClientProfileTargetFramework; if (clientProfile != null) { newFramework = clientProfile.FullFramework; SetProperty(null, null, "TargetFrameworkProfile", "Client", PropertyStorageLocations.Base, true); } else { SetProperty(null, null, "TargetFrameworkProfile", "", PropertyStorageLocations.Base, true); } SetProperty(null, null, "TargetFrameworkVersion", newFramework.Name, PropertyStorageLocations.Base, true); if (oldFramework is ClientProfileTargetFramework) oldFramework = ((ClientProfileTargetFramework)oldFramework).FullFramework; if (oldFramework != null && !oldFramework.IsBasedOn(TargetFramework.Net35) && newFramework.IsBasedOn(TargetFramework.Net35)) AddDotnet35References(); else if (oldFramework != null && oldFramework.IsBasedOn(TargetFramework.Net35) && !newFramework.IsBasedOn(TargetFramework.Net35)) RemoveDotnet35References(); if (oldFramework != null && !oldFramework.IsBasedOn(TargetFramework.Net40) && newFramework.IsBasedOn(TargetFramework.Net40)) AddDotnet40References(); else if (oldFramework != null && oldFramework.IsBasedOn(TargetFramework.Net40) && !newFramework.IsBasedOn(TargetFramework.Net40)) RemoveDotnet40References(); } AddOrRemoveExtensions(); Save(); } } }