private void AddProjectTypeSpecificDependencies( MigrationRuleInputs migrationRuleInputs, MigrationSettings migrationSettings, ProjectItemGroupElement noFrameworkPackageReferenceItemGroup) { var type = migrationRuleInputs.DefaultProjectContext.ProjectFile.GetProjectType(); switch (type) { case ProjectType.Web: _transformApplicator.Execute( SdkPackageDependencyTransform.Transform( new PackageDependencyInfo { Name = PackageConstants.WebSdkPackageName, Version = migrationSettings.SdkPackageVersion, PrivateAssets = "All" }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); break; default: break; } }
public void Apply(MigrationSettings migrationSettings, MigrationRuleInputs migrationRuleInputs) { CleanExistingPackageReferences(migrationRuleInputs.OutputMSBuildProject); _projectDirectory = migrationSettings.ProjectDirectory; var project = migrationRuleInputs.DefaultProjectContext.ProjectFile; var tfmDependencyMap = new Dictionary <string, IEnumerable <ProjectLibraryDependency> >(); var targetFrameworks = project.GetTargetFrameworks(); var noFrameworkPackageReferenceItemGroup = migrationRuleInputs.OutputMSBuildProject.AddItemGroup(); // Inject Sdk dependency _transformApplicator.Execute( SdkPackageDependencyTransform.Transform( new PackageDependencyInfo { Name = PackageConstants.SdkPackageName, Version = migrationSettings.SdkPackageVersion, PrivateAssets = "All" }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); AddProjectTypeSpecificDependencies( migrationRuleInputs, migrationSettings, noFrameworkPackageReferenceItemGroup); // Migrate Direct Deps first MigrateDependencies( project, migrationRuleInputs.OutputMSBuildProject, null, project.Dependencies, migrationRuleInputs.ProjectXproj, itemGroup: noFrameworkPackageReferenceItemGroup); MigrationTrace.Instance.WriteLine($"Migrating {targetFrameworks.Count()} target frameworks"); foreach (var targetFramework in targetFrameworks) { MigrationTrace.Instance.WriteLine($"Migrating framework {targetFramework.FrameworkName.GetShortFolderName()}"); MigrateImports(migrationRuleInputs.CommonPropertyGroup, targetFramework); MigrateDependencies( project, migrationRuleInputs.OutputMSBuildProject, targetFramework.FrameworkName, targetFramework.Dependencies, migrationRuleInputs.ProjectXproj); } MigrateTools(project, migrationRuleInputs.OutputMSBuildProject); }
private void AddProjectTypeSpecificDependencies( MigrationRuleInputs migrationRuleInputs, MigrationSettings migrationSettings, ProjectItemGroupElement noFrameworkPackageReferenceItemGroup) { var project = migrationRuleInputs.DefaultProjectContext.ProjectFile; var type = project.GetProjectType(); switch (type) { case ProjectType.Web: _transformApplicator.Execute( SdkPackageDependencyTransform.Transform( new PackageDependencyInfo { Name = PackageConstants.WebSdkPackageName, Version = migrationSettings.SdkPackageVersion, PrivateAssets = "All" }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); break; case ProjectType.Test: _transformApplicator.Execute( PackageDependencyInfoTransform().Transform( new PackageDependencyInfo { Name = PackageConstants.TestSdkPackageName, Version = ConstantPackageVersions.TestSdkPackageVersion }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); if (project.TestRunner.Equals("xunit", StringComparison.OrdinalIgnoreCase)) { _transformApplicator.Execute( PackageDependencyInfoTransform().Transform( new PackageDependencyInfo { Name = PackageConstants.XUnitPackageName, Version = ConstantPackageVersions.XUnitPackageVersion }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); _transformApplicator.Execute( PackageDependencyInfoTransform().Transform( new PackageDependencyInfo { Name = PackageConstants.XUnitRunnerPackageName, Version = ConstantPackageVersions.XUnitRunnerPackageVersion }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); } else if (project.TestRunner.Equals("mstest", StringComparison.OrdinalIgnoreCase)) { _transformApplicator.Execute( PackageDependencyInfoTransform().Transform( new PackageDependencyInfo { Name = PackageConstants.MstestTestAdapterName, Version = ConstantPackageVersions.MstestTestAdapterVersion }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); _transformApplicator.Execute( PackageDependencyInfoTransform().Transform( new PackageDependencyInfo { Name = PackageConstants.MstestTestFrameworkName, Version = ConstantPackageVersions.MstestTestFrameworkVersion }), noFrameworkPackageReferenceItemGroup, mergeExisting: false); } break; case ProjectType.Library: if (!project.HasDependency( (dep) => dep.Name.Trim().ToLower() == PackageConstants.NetStandardPackageName.ToLower())) { _transformApplicator.Execute( PackageDependencyInfoTransform().Transform( new PackageDependencyInfo { Name = PackageConstants.NetStandardPackageName, Version = PackageConstants.NetStandardPackageVersion }), noFrameworkPackageReferenceItemGroup, mergeExisting: true); } break; default: break; } }