示例#1
0
        public override void UpgradeProject(CompilerVersion newVersion, TargetFramework newFramework)
        {
            if (!Project.ReadOnly)
            {
                lock (Project.SyncRoot)
                {
                    TargetFramework oldFramework = Project.CurrentTargetFramework;
                    if (newVersion != null && GetAvailableCompilerVersions().Contains(newVersion))
                    {
                        Project.SetToolsVersion(newVersion.MSBuildVersion.Major + "." + newVersion.MSBuildVersion.Minor);
                    }
                    if (newFramework != null)
                    {
                        UpdateAppConfig(newFramework);

                        ClientProfileTargetFramework clientProfile = newFramework as ClientProfileTargetFramework;
                        if (clientProfile != null)
                        {
                            newFramework = clientProfile.FullFramework;
                            ((MSBuildBasedProject)Project).SetProperty(null, null, "TargetFrameworkProfile", "Client", PropertyStorageLocations.Base, true);
                        }
                        else
                        {
                            ((MSBuildBasedProject)Project).SetProperty(null, null, "TargetFrameworkProfile", "", PropertyStorageLocations.Base, true);
                        }
                        ((MSBuildBasedProject)Project).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();
                    Project.Save();
                    //TODO: Uncomment
                    // ResXConverter.UpdateResourceFiles(Project);
                }
            }
        }
示例#2
0
        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();
                }
            }
        }
        protected CompilableProject(ICSharpCode.SharpDevelop.Internal.Templates.ProjectCreateInformation information)
            : base(information)
        {
            this.OutputType    = OutputType.Exe;
            this.RootNamespace = information.RootNamespace;
            this.AssemblyName  = information.ProjectName;

            ClientProfileTargetFramework clientProfile = information.TargetFramework as ClientProfileTargetFramework;

            if (clientProfile != null)
            {
                SetProperty(null, null, "TargetFrameworkVersion", clientProfile.FullFramework.Name, PropertyStorageLocations.Base, true);
                SetProperty(null, null, "TargetFrameworkProfile", "Client", PropertyStorageLocations.Base, true);
            }
            else if (information.TargetFramework != null)
            {
                SetProperty(null, null, "TargetFrameworkVersion", information.TargetFramework.Name, PropertyStorageLocations.Base, true);
            }

            SetProperty("Debug", null, "OutputPath", @"bin\Debug\",
                        PropertyStorageLocations.ConfigurationSpecific, true);
            SetProperty("Release", null, "OutputPath", @"bin\Release\",
                        PropertyStorageLocations.ConfigurationSpecific, true);
            InvalidateConfigurationPlatformNames();

            SetProperty("Debug", null, "DebugSymbols", "True",
                        PropertyStorageLocations.ConfigurationSpecific, true);
            SetProperty("Release", null, "DebugSymbols", "False",
                        PropertyStorageLocations.ConfigurationSpecific, true);

            SetProperty("Debug", null, "DebugType", "Full",
                        PropertyStorageLocations.ConfigurationSpecific, true);
            SetProperty("Release", null, "DebugType", "None",
                        PropertyStorageLocations.ConfigurationSpecific, true);

            SetProperty("Debug", null, "Optimize", "False",
                        PropertyStorageLocations.ConfigurationSpecific, true);
            SetProperty("Release", null, "Optimize", "True",
                        PropertyStorageLocations.ConfigurationSpecific, true);
        }