public List <DependencyPackageMigrationInfo> GetPackageMigrations(ToolingVersion targetToolingVersion, IProjectUpgradeContext projectContext) { var list = new List <DependencyPackageMigrationInfo>(); string toolingVersion = targetToolingVersion.ToString().ToLowerInvariant(); var package = new DependencyPackageMigrationInfo("Microsoft.Extensions.Configuration.FileExtensions", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.Extensions.Configuration.FileProviderExtensions"); list.Add(package); // If Microsoft.Extensions.PlatformAbstractions package is referenced, it was split out in RC2 so add the new package as well, in case you were using classes from it. if (projectContext.ToProjectJsonWrapper().HasDependency("Microsoft.Extensions.PlatformAbstractions")) { package = new DependencyPackageMigrationInfo("Microsoft.Extensions.DependencyModel", "1.0.0-rc2-final"); package.MigrationAction = PackageMigrationAction.AddOrUpdate; list.Add(package); } // only add the following new nuget packlages if the project is a web project. We use a heuristic - if MVC is there as a dependency then its a web project. if (projectContext.ToProjectJsonWrapper().IsMvcProject()) { package = new DependencyPackageMigrationInfo("Microsoft.Extensions.Options.ConfigurationExtensions", $"1.0.0-rc2-final"); package.MigrationAction = PackageMigrationAction.AddOrUpdate; list.Add(package); } return(list); }
public List <DependencyPackageMigrationInfo> GetPackageMigrations(ToolingVersion targetToolingVersion, IProjectUpgradeContext projectContext) { var list = new List <DependencyPackageMigrationInfo>(); string toolingVersion = ToolingVersion.Preview1.ToString().ToLowerInvariant(); // file providers were renamed. var package = new DependencyPackageMigrationInfo("Microsoft.Extensions.FileProviders.Abstractions", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.AspNet.FileProviders"); package.MigrationAction = PackageMigrationAction.Update; list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.Extensions.FileProviders.Composite", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.AspNet.FileProviders.Composite"); package.MigrationAction = PackageMigrationAction.Update; list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.Extensions.FileProviders.Embedded", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.AspNet.FileProviders.Embedded"); package.MigrationAction = PackageMigrationAction.Update; list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.Extensions.FileProviders.Physical", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.AspNet.FileProviders.Physical"); package.MigrationAction = PackageMigrationAction.Update; list.Add(package); return(list); }
public List <ToolPackageMigrationInfo> GetPackageMigrations(ToolingVersion targetToolingVersion, IProjectUpgradeContext projectContext) { var list = new List <ToolPackageMigrationInfo>(); string toolingVersion = targetToolingVersion.ToString().ToLowerInvariant(); // Updates the old web command if it is found, to be the new tool. var package = new ToolPackageMigrationInfo("Microsoft.AspNetCore.Server.IISIntegration.Tools", $"1.0.0-{toolingVersion}-final"); package.OldNames.Add("web"); package.Imports.Add("portable-net45+win8+dnxcore50"); package.MigrationAction = PackageMigrationAction.Update; list.Add(package); // Adds / updates the user secrets tool - if the project.json has a userSecretsId present. if (projectContext.ProjectJsonObject["userSecretsId"] != null) { package = new ToolPackageMigrationInfo("Microsoft.Extensions.SecretManager.Tools", $"1.0.0-{toolingVersion}-final"); package.Imports.Add("portable-net45+win8+dnxcore50"); package.MigrationAction = PackageMigrationAction.AddOrUpdate; list.Add(package); } // Updates the old ef command if it is found, to be the new tool. package = new ToolPackageMigrationInfo("Microsoft.EntityFrameworkCore.Tools", $"1.0.0-{toolingVersion}-final"); package.OldNames.Add("ef"); package.Imports.Add("portable-net45+win8+dnxcore50"); package.Imports.Add("portable-net45+win8"); package.MigrationAction = PackageMigrationAction.Update; list.Add(package); // only add the razor tools tool if project allready references razor tools package as a dependency (either as new or old name) in case we havent updated it yet) if (projectContext.ToProjectJsonWrapper().HasDependency("Microsoft.AspNetCore.Razor.Tools") || projectContext.ToProjectJsonWrapper().HasDependency("Microsoft.AspNet.Tooling.Razor")) { package = new ToolPackageMigrationInfo("Microsoft.AspNetCore.Razor.Tools", $"1.0.0-{toolingVersion}-final"); package.Imports.Add("portable-net45+win8+dnxcore50"); package.MigrationAction = PackageMigrationAction.AddOrUpdate; list.Add(package); } // only add the web code generation tools to the project if its a web project. We use a heuristic - if MVC is there as a dependency then its a web project. if (projectContext.ToProjectJsonWrapper().IsMvcProject()) { package = new ToolPackageMigrationInfo("Microsoft.VisualStudio.Web.CodeGeneration.Tools", $"1.0.0-{toolingVersion}-final"); package.Imports.Add("portable-net45+win8+dnxcore50"); package.Imports.Add("portable-net45+win8"); package.MigrationAction = PackageMigrationAction.AddOrUpdate; list.Add(package); } return(list); }
public SolutionMigrationOptions(ToolingVersion toolingVersion) { ToolingVersion = toolingVersion; if (ToolingVersion == ToolingVersion.Preview1) { SdkVersionNumber = "1.0.0-preview1-002702"; } else if (ToolingVersion == ToolingVersion.Preview2) { SdkVersionNumber = "1.0.0-preview2-003121"; } }
public List <DependencyPackageMigrationInfo> GetPackageMigrations(ToolingVersion targetToolingVersion, IProjectUpgradeContext projectContext) { var list = new List <DependencyPackageMigrationInfo>(); string toolingVersion = ToolingVersion.Preview1.ToString().ToLowerInvariant(); // ef packages.. var package = new DependencyPackageMigrationInfo("Microsoft.EntityFrameworkCore.SqlServer", "1.0.0-rc2-final"); package.OldNames.Add("EntityFramework.MicrosoftSqlServer"); package.OldNames.Add("EntityFramework.SqlServer"); list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.EntityFrameworkCore.SQLite", "1.0.0-rc2-final"); package.OldNames.Add("EntityFramework.SQLite"); list.Add(package); //package = new NuGetPackageMigrationInfo("NpgSql.EntityFrameworkCore.Postgres", "1.0.0-rc2-final"); //package.OldNames.Add("EntityFramework7.Npgsql"); //list.Add(package); package = new DependencyPackageMigrationInfo("EntityFrameworkCore.SqlServerCompact35", "1.0.0-rc2-final"); package.OldNames.Add("EntityFramework.SqlServerCompact35"); list.Add(package); package = new DependencyPackageMigrationInfo("EntityFrameworkCore.SqlServerCompact40", "1.0.0-rc2-final"); package.OldNames.Add("EntityFramework.SqlServerCompact40"); list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.EntityFrameworkCore.InMemory", "1.0.0-rc2-final"); package.OldNames.Add("EntityFramework.InMemory"); list.Add(package); //package = new NuGetPackageMigrationInfo("EntityFramework.IBMDataServer", "1.0.0-rc2-final"); //package.OldNames.Add("EntityFramework.IBMDataServer"); //list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.EntityFrameworkCore.Tools", $"1.0.0-{toolingVersion}-final"); package.Type = PackageType.Build; package.OldNames.Add("EntityFramework.Commands"); list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.EntityFrameworkCore.SqlServer.Design", "1.0.0-rc2-final"); package.OldNames.Add("EntityFramework.MicrosoftSqlServer.Design"); list.Add(package); return(list); }
public List <DependencyPackageMigrationInfo> GetPackageMigrations(ToolingVersion targetToolingVersion, IProjectUpgradeContext projectContext) { var list = new List <DependencyPackageMigrationInfo>(); string toolingVersion = ToolingVersion.Preview1.ToString().ToLowerInvariant(); // aspnet packages var package = new DependencyPackageMigrationInfo("Autofac", "4.0.0-rc3-280"); list.Add(package); package = new DependencyPackageMigrationInfo("Autofac.Extensions.DependencyInjection", "4.0.0-rc3-280"); list.Add(package); return(list); }
public static List <ToolPackageMigrationInfo> GetToolPackageMigrationList(ToolingVersion targetToolingVersion, IProjectUpgradeContext projectContext) { var toolMigrationProviders = new List <IToolPackageMigrationProvider>(); toolMigrationProviders.Add(new CommonToolPackagesMigration()); var migrations = new List <ToolPackageMigrationInfo>(); foreach (var provider in toolMigrationProviders) { var packageMigrations = provider.GetPackageMigrations(targetToolingVersion, projectContext); migrations.AddRange(packageMigrations); } return(migrations); }
static int Main(string[] args) { var result = CommandLine.Parser.Default.ParseArguments <Options.UpgradeSolutionOptions>(args); var exitCode = result .MapResult((options) => { var solutionDir = new DirectoryInfo(options.SolutionDir); var solutionUpgradeContext = new SolutionUpgradeContext(solutionDir); var solutionMigrator = new SolutionMigrator(solutionUpgradeContext); ToolingVersion toolingVersion = ToolingVersion.Preview1; if (options.ReleaseVersion == ReleaseVersion.RTM) { toolingVersion = ToolingVersion.Preview2; } var solutionMigratorOptions = new SolutionMigrationOptions(toolingVersion); solutionMigrator.Apply(solutionMigratorOptions); // upgrade projects. foreach (var project in solutionUpgradeContext.Projects) { Console.WriteLine("Upgrading " + project.ToString()); var projectMigrator = new ProjectMigrator(project); // using default options for each project, but should probably extend command line to set these. var projectUpgradeOptions = new ProjectMigrationOptions(options.ReleaseVersion); projectMigrator.Apply(projectUpgradeOptions); // upgrade csharp files in project if enabled. if (!options.NoCsharpRefactoring) { var codeMigrationoptions = new CsharpCodeMigrationOptions() { RewriteUsings = true }; var csharpMigrator = new CsharpCodeMigrator(codeMigrationoptions); foreach (var csharpFileUpgradeContext in project.CsharpFiles) { Console.WriteLine("Refactoring: {0}", csharpFileUpgradeContext.ToString()); csharpMigrator.Apply(csharpFileUpgradeContext, null); } } } // save changes to disk. solutionUpgradeContext.SaveChanges(); // perform refactorings? //Refactor(solutionUpgradeContext); Console.WriteLine("Deleting project.lock.json files.."); var projectLockFiles = solutionDir.GetFileSystemInfos("project.lock.json", SearchOption.AllDirectories); foreach (var projectLock in projectLockFiles) { Console.WriteLine("Deleting lock file " + projectLock.ToString()); projectLock.Delete(); } if (options.Verbose) { Console.WriteLine("Upgrade finished."); } return(0); }, (errors) => { //LogHelper.Log(errors); return(1); }); return(exitCode); }
public List <DependencyPackageMigrationInfo> GetPackageMigrations(ToolingVersion targetToolingVersion, IProjectUpgradeContext projectContext) { var list = new List <DependencyPackageMigrationInfo>(); string toolingVersion = ToolingVersion.Preview1.ToString().ToLowerInvariant(); // aspnet packages var package = new DependencyPackageMigrationInfo("Microsoft.AspNetCore.Identity.EntityFrameworkCore", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.AspNet.Identity.EntityFramework"); list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.AspNetCore.Server.IISIntegration", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.AspNet.IISPlatformHandler"); list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.AspNet.Diagnostics.Entity"); list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.AspNetCore.Razor.Tools", $"1.0.0-{toolingVersion}-final"); package.Type = PackageType.Build; package.OldNames.Add("Microsoft.AspNet.Tooling.Razor"); list.Add(package); var projectWrapper = projectContext.ToProjectJsonWrapper(); // only add the following new nuget packlages if the project is a web project. We use a heuristic - if MVC is there as a dependency then its a web project. if (projectWrapper.IsMvcProject()) { package = new DependencyPackageMigrationInfo("Microsoft.VisualStudio.Web.CodeGeneration.Tools", $"1.0.0-{toolingVersion}-final"); package.Type = PackageType.Build; package.MigrationAction = PackageMigrationAction.AddOrUpdate; list.Add(package); // ensure Microsoft.AspNetCore.Diagnostics is brought in package = new DependencyPackageMigrationInfo("Microsoft.AspNetCore.Diagnostics", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.AspNet.Diagnostics"); package.MigrationAction = PackageMigrationAction.AddOrUpdate; list.Add(package); } package = new DependencyPackageMigrationInfo("Microsoft.VisualStudio.Web.CodeGenerators.Mvc", $"1.0.0-{toolingVersion}-final"); package.OldNames.Add("Microsoft.Extensions.CodeGenerators.Mvc"); package.Type = PackageType.Build; list.Add(package); package = new DependencyPackageMigrationInfo("Microsoft.ApplicationInsights.AspNetCore", "1.0.0-rc2-final"); package.OldNames.Add("Microsoft.ApplicationInsights.AspNet"); list.Add(package); // Ensure following package is present if depending on IISPlatformHandler if (projectWrapper.HasDependency("Microsoft.AspNet.IISPlatformHandler") || projectWrapper.HasDependency("Microsoft.AspNetCore.Server.IISIntegration")) { package = new DependencyPackageMigrationInfo("Microsoft.AspNetCore.Hosting", $"1.0.0-rc2-final"); package.MigrationAction = PackageMigrationAction.AddOrUpdate; list.Add(package); } // remove Microsoft.Dnx.Runtime package = new DependencyPackageMigrationInfo("Microsoft.Dnx.Runtime", "1.0.0-rc1-final"); package.MigrationAction = PackageMigrationAction.Remove; list.Add(package); return(list); }
public static List <DependencyPackageMigrationInfo> GetRtmDependencyPackageMigrationList(ToolingVersion targetToolingVersion, IProjectUpgradeContext projectContext) { var packageMigrationProviders = new List <IDependencyPackageMigrationProvider>(); // packageMigrationProviders.Add(new AspNetDependencyPackageMigrationProvider()); packageMigrationProviders.Add(new EntityFrameworkRtmDependencyPackageMigrationProvider()); packageMigrationProviders.Add(new AspNetRtmDependencyPackageMigrationProvider()); var migrations = new List <DependencyPackageMigrationInfo>(); foreach (var provider in packageMigrationProviders) { var packageMigrations = provider.GetPackageMigrations(targetToolingVersion, projectContext); migrations.AddRange(packageMigrations); } return(migrations); // Microsoft.VisualStudio.Web.BrowserLink.Loader? }
protected virtual IList <IProjectUpgradeAction> GetPackagesUpgrades(IProjectUpgradeContext projectUpgradeContext, ReleaseVersion version) { var upgradeActions = new List <IProjectUpgradeAction>(); //if (version == ReleaseVersion.RC2) //{ // migrates specific nuget packages where their name has completely changed, and also adds new ones that the project may require. // this is currently described by a hardcoded list. ToolingVersion toolingVersion = ToolingVersion.Preview1; if (version == ReleaseVersion.RTM) { toolingVersion = ToolingVersion.Preview2; } var nugetPackagesToMigrate = ProjectMigrator.GetRc2DependencyPackageMigrationList(toolingVersion, projectUpgradeContext); var packageMigrationAction = new MigrateDependencyPackages(nugetPackagesToMigrate); upgradeActions.Add(packageMigrationAction); // renames microsoft.aspnet packages to be microsoft.aspnetcore. var renameAspNetPackagesAction = new RenameAspNetPackagesToAspNetCore(); upgradeActions.Add(renameAspNetPackagesAction); // updates microsoft. packages to be rc2 version numbers. var updateMicrosoftPackageVersionNumbersAction = new UpgradeMicrosoftPackageVersionNumbers(version); upgradeActions.Add(updateMicrosoftPackageVersionNumbersAction); // renames "commands" to "tools" var renameCommandstoToolsAndClear = new RenameCommandsToTools(); upgradeActions.Add(renameCommandstoToolsAndClear); // migrates old command packages to the new tool nuget packages. var toolPackagestoMigrate = GetToolPackageMigrationList(ToolingVersion.Preview1, projectUpgradeContext); var migrateToolPackages = new MigrateToolPackages(toolPackagestoMigrate); upgradeActions.Add(migrateToolPackages); // } if (version == ReleaseVersion.RTM) { // migrates specific nuget packages where their name has completely changed, and also adds new ones that the project may require. // this is currently described by a hardcoded list. var nugetPackagesToMigrateRTM = ProjectMigrator.GetRtmDependencyPackageMigrationList(ToolingVersion.Preview2, projectUpgradeContext); var packageMigrationActionRTM = new MigrateDependencyPackages(nugetPackagesToMigrateRTM); upgradeActions.Add(packageMigrationActionRTM); // updates remaining microsoft rc2 packages to be rtm version numbers i.e 1.0.0 instead of 1.0.0-rc2-final var updateMicrosoftPackageVersionNumbersActionRtm = new UpgradeMicrosoftPackageVersionNumbers(version); upgradeActions.Add(updateMicrosoftPackageVersionNumbersActionRtm); // migrates old command packages to the new tool nuget packages. var toolPackagestoMigrateRtm = GetToolPackageMigrationList(ToolingVersion.Preview2, projectUpgradeContext); var migrateToolPackagesRtm = new MigrateToolPackages(toolPackagestoMigrateRtm); upgradeActions.Add(migrateToolPackagesRtm); } return(upgradeActions); }