diff --git a/src/cli/Microsoft.DotNet.UpgradeAssistant.Cli/Commands/Upgrade/ConsoleUpgrade.cs b/src/cli/Microsoft.DotNet.UpgradeAssistant.Cli/Commands/Upgrade/ConsoleUpgrade.cs index 2ee4028c5..b1445b61f 100644 --- a/src/cli/Microsoft.DotNet.UpgradeAssistant.Cli/Commands/Upgrade/ConsoleUpgrade.cs +++ b/src/cli/Microsoft.DotNet.UpgradeAssistant.Cli/Commands/Upgrade/ConsoleUpgrade.cs @@ -127,7 +127,7 @@ private async Task RunStepAsync(IUpgradeContext context, UpgradeStep step, Cance if (!await ExecuteAndTimeCommand(context, step, command, token)) { Console.ForegroundColor = ConsoleColor.Yellow; - await _io.Output.WriteAsync($"Command ({command.CommandText}) did not succeed"); + await _io.Output.WriteLineAsync($"Command ({command.CommandText}) did not succeed"); Console.ResetColor(); } else if (!await _input.WaitToProceedAsync(token)) diff --git a/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/IUpgradeContextExtensions.cs b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/IUpgradeContextExtensions.cs index 2c6738c6b..80265398b 100644 --- a/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/IUpgradeContextExtensions.cs +++ b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/IUpgradeContextExtensions.cs @@ -12,13 +12,13 @@ namespace Microsoft.DotNet.UpgradeAssistant public static class IUpgradeContextExtensions { public static void AddResultForStep(this IUpgradeContext context, UpgradeStep step, - string location, UpgradeStepStatus upgradeStepStatus, string message) + string location, UpgradeStepStatus upgradeStepStatus, string message, string? details = null, Uri? helpUri = null, OutputLevel? outputLevel = null) { - AddResult(context, step.Title, location, step.Id, upgradeStepStatus, message); + AddResult(context, step.Title, step.Description, location, step.Id, upgradeStepStatus, message, details, helpUri, outputLevel); } - public static void AddResult(this IUpgradeContext context, string stepName, string location, string ruleId, - UpgradeStepStatus upgradeStepStatus, string message) + public static void AddResult(this IUpgradeContext context, string stepName, string stepDescription, string location, string ruleId, + UpgradeStepStatus upgradeStepStatus, string message, string? details = null, Uri? helpUri = null, OutputLevel? outputLevel = null) { var status = upgradeStepStatus switch { @@ -29,12 +29,23 @@ public static void AddResult(this IUpgradeContext context, string stepName, stri _ => throw new ArgumentException("Invalid UpgradeStepStatus", nameof(upgradeStepStatus)) }; + var level = outputLevel ?? upgradeStepStatus switch + { + UpgradeStepStatus.Skipped => OutputLevel.Info, + UpgradeStepStatus.Failed => OutputLevel.Warning, + UpgradeStepStatus.Complete => OutputLevel.Info, + UpgradeStepStatus.Incomplete => OutputLevel.Info, + _ => throw new ArgumentException("Invalid UpgradeStepStatus", nameof(upgradeStepStatus)) + }; + var result = new OutputResult() { + Level = level, FileLocation = location, RuleId = ruleId, - ResultMessage = $"{status}: {message}", - FullDescription = message, + ResultMessage = string.IsNullOrEmpty(details) ? $"{status}: {message}" : $"{status}: {message}{Environment.NewLine}{details}", + FullDescription = stepDescription, + HelpUri = helpUri }; var outputResultDefinition = new OutputResultDefinition() diff --git a/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/OutputLevel.cs b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/OutputLevel.cs new file mode 100644 index 000000000..16d74649d --- /dev/null +++ b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/OutputLevel.cs @@ -0,0 +1,14 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; + +namespace Microsoft.DotNet.UpgradeAssistant +{ + public enum OutputLevel + { + Info, + Warning, + Error + } +} diff --git a/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/OutputResult.cs b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/OutputResult.cs index 31518fb59..0fe3dc966 100644 --- a/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/OutputResult.cs +++ b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/OutputResult.cs @@ -7,6 +7,8 @@ namespace Microsoft.DotNet.UpgradeAssistant { public record OutputResult { + public OutputLevel Level { get; init; } = OutputLevel.Info; + public string RuleId { get; init; } = string.Empty; public string RuleName { get; init; } = string.Empty; @@ -19,7 +21,7 @@ public record OutputResult /// /// Gets the link to the documentation. /// - public Uri HelpUri { get; init; } = new("about:blank"); + public Uri? HelpUri { get; init; } public int LineNumber { get; init; } diff --git a/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/TestOptions.cs b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/TestOptions.cs new file mode 100644 index 000000000..8c64be930 --- /dev/null +++ b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/TestOptions.cs @@ -0,0 +1,10 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Microsoft.DotNet.UpgradeAssistant +{ + public class TestOptions + { + public bool IsRunningTest { get; set; } + } +} diff --git a/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/UpgradeStep.cs b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/UpgradeStep.cs index 7a14fe7b6..dbf208a0a 100644 --- a/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/UpgradeStep.cs +++ b/src/common/Microsoft.DotNet.UpgradeAssistant.Abstractions/UpgradeStep.cs @@ -80,7 +80,7 @@ protected UpgradeStep(ILogger logger) public BuildBreakRisk Risk { get; private set; } /// - /// Gets a value indicating whether the upgrade is done (has completed successfully or was skipped). + /// Gets a value indicating whether the upgrade is done (has completed successfully, failed, or was skipped). /// public bool IsDone => Status switch { @@ -97,7 +97,7 @@ protected UpgradeStep(ILogger logger) /// /// Implementers should use this method to indicate whether the upgrade step applies to a given upgrade context. /// Note that applicability is not about whether the step is complete or not (InitializeImplAsync should check that), - /// rather it is about whether it would ever make sense to run the migraiton step on the given context or not. + /// rather it is about whether it would ever make sense to run the migration step on the given context or not. /// For example, a upgrade step that acts at the project level would be inapplicable when a solution is selected /// rather than a project. /// @@ -196,8 +196,9 @@ public virtual async Task ApplyAsync(IUpgradeContext context, Cancellation catch (Exception e) #pragma warning restore CA1031 // Do not catch general exception types { - (Status, StatusDetails) = (UpgradeStepStatus.Failed, "Unexpected error applying step."); - Logger.LogError(e, "Unexpected error applying step"); + (Status, StatusDetails) = (UpgradeStepStatus.Failed, $"Unexpected error applying upgrade step '{Title}'"); + Logger.LogError(e, "Unexpected error applying upgrade step {StepTitle}", Title); + context.AddResultForStep(this, context.CurrentProject?.GetFile()?.FilePath ?? string.Empty, Status, StatusDetails, details: e.ToString(), outputLevel: OutputLevel.Error); return false; } } diff --git a/src/components/Microsoft.DotNet.UpgradeAssistant.Analysis/SarifAnalyzeResultWriter.cs b/src/components/Microsoft.DotNet.UpgradeAssistant.Analysis/SarifAnalyzeResultWriter.cs index e10d0b29a..2023da62c 100644 --- a/src/components/Microsoft.DotNet.UpgradeAssistant.Analysis/SarifAnalyzeResultWriter.cs +++ b/src/components/Microsoft.DotNet.UpgradeAssistant.Analysis/SarifAnalyzeResultWriter.cs @@ -97,6 +97,17 @@ private static ReportingDescriptor ExtractRule(IGrouping a private static IList ExtractResults(IList analyzeResults) { + FailureLevel GetFailureLevel(OutputLevel level) + { + return level switch + { + OutputLevel.Info => FailureLevel.Note, + OutputLevel.Warning => FailureLevel.Warning, + OutputLevel.Error => FailureLevel.Error, + _ => throw new ArgumentException($"Invalid {nameof(OutputLevel)}", nameof(level)) + }; + } + var results = new List(); foreach (var r in analyzeResults) { @@ -104,6 +115,7 @@ private static IList ExtractResults(IList analyzeResults) { RuleId = r.RuleId, Message = r.ResultMessage.ToMessage(), + Level = GetFailureLevel(r.Level), Locations = new List() { new() diff --git a/src/components/Microsoft.DotNet.UpgradeAssistant.MSBuild/MSBuildProject.File.cs b/src/components/Microsoft.DotNet.UpgradeAssistant.MSBuild/MSBuildProject.File.cs index 74bf78899..326454583 100644 --- a/src/components/Microsoft.DotNet.UpgradeAssistant.MSBuild/MSBuildProject.File.cs +++ b/src/components/Microsoft.DotNet.UpgradeAssistant.MSBuild/MSBuildProject.File.cs @@ -132,7 +132,7 @@ public void RenameFile(string filePath) var backupName = $"{Path.GetFileNameWithoutExtension(fileName)}.old{Path.GetExtension(fileName)}"; var counter = 0; - while (File.Exists(backupName)) + while (File.Exists(Path.Combine(Path.GetDirectoryName(filePath)!, backupName))) { backupName = $"{Path.GetFileNameWithoutExtension(fileName)}.old.{counter++}{Path.GetExtension(fileName)}"; } diff --git a/src/components/Microsoft.DotNet.UpgradeAssistant/TargetFramework/DependencyMinimumTargetFrameworkSelectorFilter.cs b/src/components/Microsoft.DotNet.UpgradeAssistant/TargetFramework/DependencyMinimumTargetFrameworkSelectorFilter.cs index 822190779..c6e0eec4b 100644 --- a/src/components/Microsoft.DotNet.UpgradeAssistant/TargetFramework/DependencyMinimumTargetFrameworkSelectorFilter.cs +++ b/src/components/Microsoft.DotNet.UpgradeAssistant/TargetFramework/DependencyMinimumTargetFrameworkSelectorFilter.cs @@ -32,7 +32,7 @@ public void Process(ITargetFrameworkSelectorFilterState tfm) if (tfm.Components.HasFlag(ProjectComponents.MauiAndroid) || tfm.Components.HasFlag(ProjectComponents.MauiiOS) || tfm.Components.HasFlag(ProjectComponents.Maui)) { - _logger.LogInformation("Skip minimum dependency check because .NET MAUI support multiple TFMs."); + _logger.LogInformation("Skip minimum dependency check because .NET MAUI supports multiple TFMs."); } else if (tfm.Components.HasFlag(ProjectComponents.WinUI)) { @@ -50,7 +50,7 @@ public void Process(ITargetFrameworkSelectorFilterState tfm) { if (tfm.TryUpdate(min)) { - _logger.LogInformation("Recommending TFM {TFM} because of dependency on project {Dependency}", min, dep.GetFile().FilePath); + _logger.LogInformation("Recommending TFM {TFM} for project {Name} because of dependency on project {Dependency}", min, tfm.Project, dep.GetFile().FilePath); } } } diff --git a/src/components/Microsoft.DotNet.UpgradeAssistant/TargetFramework/ExecutableTargetFrameworkSelectorFilter.cs b/src/components/Microsoft.DotNet.UpgradeAssistant/TargetFramework/ExecutableTargetFrameworkSelectorFilter.cs index 7175b0ab9..3b4b41333 100644 --- a/src/components/Microsoft.DotNet.UpgradeAssistant/TargetFramework/ExecutableTargetFrameworkSelectorFilter.cs +++ b/src/components/Microsoft.DotNet.UpgradeAssistant/TargetFramework/ExecutableTargetFrameworkSelectorFilter.cs @@ -26,7 +26,7 @@ public void Process(ITargetFrameworkSelectorFilterState tfm) { if (tfm.TryUpdate(tfm.AppBase)) { - _logger.LogInformation("Recommending executable TFM {TFM} because the project builds to an executable", tfm.AppBase); + _logger.LogInformation("Recommending executable TFM {TFM} for project {Name} because the project builds to an executable", tfm.AppBase, tfm.Project); } } } diff --git a/src/components/Microsoft.DotNet.UpgradeAssistant/UpgraderManager.cs b/src/components/Microsoft.DotNet.UpgradeAssistant/UpgraderManager.cs index d29868978..9865f6241 100644 --- a/src/components/Microsoft.DotNet.UpgradeAssistant/UpgraderManager.cs +++ b/src/components/Microsoft.DotNet.UpgradeAssistant/UpgraderManager.cs @@ -15,15 +15,18 @@ public class UpgraderManager { private readonly IUpgradeStepOrderer _orderer; private readonly ITelemetry _telemetry; + private readonly IUserInput _userInput; private readonly ILogger _logger; public UpgraderManager( IUpgradeStepOrderer orderer, ITelemetry telemetry, + IUserInput userInput, ILogger logger) { _orderer = orderer ?? throw new ArgumentNullException(nameof(orderer)); _telemetry = telemetry ?? throw new ArgumentNullException(nameof(telemetry)); + _userInput = userInput ?? throw new ArgumentNullException(nameof(userInput)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); } @@ -155,6 +158,12 @@ public async Task> InitializeAsync(IUpgradeContext cont } } + if (step.Status == UpgradeStepStatus.Failed && !_userInput.IsInteractive) + { + // Don't return failed steps in non-interactive mode + continue; + } + if (!step.IsDone) { return step; diff --git a/src/extensions/default/Microsoft.DotNet.UpgradeAssistant.Steps.Solution/CurrentProjectSelectionStep.cs b/src/extensions/default/Microsoft.DotNet.UpgradeAssistant.Steps.Solution/CurrentProjectSelectionStep.cs index 37455418b..df2513090 100644 --- a/src/extensions/default/Microsoft.DotNet.UpgradeAssistant.Steps.Solution/CurrentProjectSelectionStep.cs +++ b/src/extensions/default/Microsoft.DotNet.UpgradeAssistant.Steps.Solution/CurrentProjectSelectionStep.cs @@ -101,8 +101,8 @@ protected override async Task InitializeImplAsync(I if (allProjectsAreUpgraded) { - Logger.LogInformation("No projects need upgraded for selected entrypoint"); - return new UpgradeStepInitializeResult(UpgradeStepStatus.Complete, "No projects need upgraded", BuildBreakRisk.None); + Logger.LogInformation("No projects need to be upgraded for selected entrypoint"); + return new UpgradeStepInitializeResult(UpgradeStepStatus.Complete, "No projects need to be upgraded", BuildBreakRisk.None); } // If no project is selected, and at least one still needs upgraded, identify the next project to upgrade @@ -129,7 +129,7 @@ protected override async Task InitializeImplAsync(I { if (await IsCompletedAsync(context, newCurrentProject, token).ConfigureAwait(false)) { - Logger.LogDebug("Project {Project} does not need upgraded", newCurrentProject.FileInfo); + Logger.LogDebug("Project {Project} does not need to be upgraded", newCurrentProject.FileInfo); } else if (!(await RunChecksAsync(newCurrentProject, token).ConfigureAwait(false))) { @@ -140,6 +140,7 @@ protected override async Task InitializeImplAsync(I context.SetCurrentProject(newCurrentProject); } + Logger.LogInformation("Project {Name} was selected", newCurrentProject.GetRoslynProject().Name); return new UpgradeStepInitializeResult(UpgradeStepStatus.Complete, $"Project {newCurrentProject.GetRoslynProject().Name} was selected", BuildBreakRisk.None); } } @@ -160,6 +161,7 @@ protected override async Task ApplyImplAsync(IUpgradeCon else { context.SetCurrentProject(selectedProject); + Logger.LogInformation("Project {Name} was selected", selectedProject.GetRoslynProject().Name); return new UpgradeStepApplyResult(UpgradeStepStatus.Complete, $"Project {selectedProject.GetRoslynProject().Name} was selected."); } } diff --git a/src/extensions/default/Microsoft.DotNet.UpgradeAssistant.Steps.Source/CodeFixerStep.cs b/src/extensions/default/Microsoft.DotNet.UpgradeAssistant.Steps.Source/CodeFixerStep.cs index 759041058..89464877d 100644 --- a/src/extensions/default/Microsoft.DotNet.UpgradeAssistant.Steps.Source/CodeFixerStep.cs +++ b/src/extensions/default/Microsoft.DotNet.UpgradeAssistant.Steps.Source/CodeFixerStep.cs @@ -165,7 +165,7 @@ protected override async Task ApplyImplAsync(IUpgradeCon private void AddResultToContext(IUpgradeContext context, string diagnosticId, string location, UpgradeStepStatus status, string resultMessage) { - context.AddResult(Title, location, diagnosticId, status, resultMessage); + context.AddResult(Title, Description, location, diagnosticId, status, resultMessage); } private async Task TryFixDiagnosticAsync(Diagnostic diagnostic, Document document, CancellationToken token) diff --git a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiAddProjectPropertiesStep.cs b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiAddProjectPropertiesStep.cs index 029a9aa91..26b2a33fa 100644 --- a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiAddProjectPropertiesStep.cs +++ b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiAddProjectPropertiesStep.cs @@ -12,9 +12,9 @@ namespace Microsoft.DotNet.UpgradeAssistant.Extensions.Maui { public class MauiAddProjectPropertiesStep : UpgradeStep { - public override string Title => "Add Project Properties for .NET MAUI Project"; + public override string Title => "Update Project Properties for .NET MAUI Project"; - public override string Description => "Adds the Project Properties per platform for .NET MAUI Projects"; + public override string Description => "Updates the platform-specific project properties for a .NET MAUI project"; public MauiAddProjectPropertiesStep(ILogger logger) : base(logger) @@ -44,64 +44,63 @@ protected override async Task ApplyImplAsync(IUpgradeCon var project = context.CurrentProject.Required(); var file = project.GetFile(); - var projectproperties = project.GetProjectPropertyElements(); - - var projectType = await MauiUtilties.GetMauiProjectTypeForProject(project, token).ConfigureAwait(false); + var projectProperties = project.GetProjectPropertyElements(); + var projectType = await project.GetMauiProjectType(token).ConfigureAwait(false); switch (projectType) { case MauiProjectType.Maui: { - UpgradeMaui(projectproperties, file); + UpgradeMaui(projectProperties, file); break; } case MauiProjectType.MauiAndroid: { - UpgradeMauiAndroid(projectproperties, file); + UpgradeMauiAndroid(projectProperties, file); break; } case MauiProjectType.MauiiOS: { - UpgradeMauiiOS(projectproperties, file); + UpgradeMauiiOS(projectProperties, file); break; } } - if (projectproperties.GetProjectPropertyValue("UseMaui")?.FirstOrDefault() is null) + if (projectProperties.GetProjectPropertyValue("UseMaui")?.FirstOrDefault() is null) { file.SetPropertyValue("UseMaui", "true"); } await file.SaveAsync(token).ConfigureAwait(false); - Logger.LogInformation("Added .NET MAUI Project Properties successfully"); - return new UpgradeStepApplyResult(UpgradeStepStatus.Complete, $"Added Project Properties for {projectType.ToString()} to .NET MAUI project "); + Logger.LogInformation("Updated {ProjectType} project properties for .NET MAUI project {ProjectName}", projectType, project.FileInfo.Name); + return context.CreateAndAddStepApplyResult(this, UpgradeStepStatus.Complete, $"Updated {projectType} project properties for .NET MAUI project {project.FileInfo.Name}"); } - private static void UpgradeMauiAndroid(IProjectPropertyElements projectproperties, IProjectFile file) + private static void UpgradeMauiAndroid(IProjectPropertyElements projectProperties, IProjectFile file) { // confirm final mappings https://github.com/xamarin/xamarin-android/blob/main/Documentation/guides/OneDotNet.md#changes-to-msbuild-properties - // remove uneeded properties - projectproperties.RemoveProjectProperty("AndroidApplication"); - projectproperties.RemoveProjectProperty("AndroidResgenFile"); - projectproperties.RemoveProjectProperty("AndroidResgenClass"); - projectproperties.RemoveProjectProperty("MonoAndroidAssetsPrefix"); - projectproperties.RemoveProjectProperty("MonoAndroidAssetsPrefix"); - projectproperties.RemoveProjectProperty("AndroidUseLatestPlatformSdk"); - projectproperties.RemoveProjectProperty("AndroidEnableSGenConcurrent"); - projectproperties.RemoveProjectProperty("AndroidHttpClientHandlerType"); - projectproperties.RemoveProjectProperty("AndroidManagedSymbols"); - projectproperties.RemoveProjectProperty("AndroidUseSharedRuntime"); - projectproperties.RemoveProjectProperty("MonoAndroidResourcePrefix"); - projectproperties.RemoveProjectProperty("AndroidUseAapt2"); - projectproperties.RemoveProjectProperty("AndroidManifest"); - projectproperties.RemoveProjectProperty("AndroidSupportedAbis"); - - var androidLinkMode = projectproperties.GetProjectPropertyValue("AndroidLinkMode"); + // remove unneeded properties + projectProperties.RemoveProjectProperty("AndroidApplication"); + projectProperties.RemoveProjectProperty("AndroidResgenFile"); + projectProperties.RemoveProjectProperty("AndroidResgenClass"); + projectProperties.RemoveProjectProperty("MonoAndroidAssetsPrefix"); + projectProperties.RemoveProjectProperty("MonoAndroidAssetsPrefix"); + projectProperties.RemoveProjectProperty("AndroidUseLatestPlatformSdk"); + projectProperties.RemoveProjectProperty("AndroidEnableSGenConcurrent"); + projectProperties.RemoveProjectProperty("AndroidHttpClientHandlerType"); + projectProperties.RemoveProjectProperty("AndroidManagedSymbols"); + projectProperties.RemoveProjectProperty("AndroidUseSharedRuntime"); + projectProperties.RemoveProjectProperty("MonoAndroidResourcePrefix"); + projectProperties.RemoveProjectProperty("AndroidUseAapt2"); + projectProperties.RemoveProjectProperty("AndroidManifest"); + projectProperties.RemoveProjectProperty("AndroidSupportedAbis"); + + var androidLinkMode = projectProperties.GetProjectPropertyValue("AndroidLinkMode"); foreach (var linkMode in androidLinkMode) { - projectproperties.RemoveProjectProperty("AndroidLinkMode"); + projectProperties.RemoveProjectProperty("AndroidLinkMode"); if (string.Equals(linkMode, "SdkOnly", StringComparison.Ordinal) || string.Equals(linkMode, "Full", StringComparison.Ordinal)) { file.SetPropertyValue("PublishTrimmed", "true"); @@ -112,27 +111,27 @@ private static void UpgradeMauiAndroid(IProjectPropertyElements projectpropertie file.SetPropertyValue("ImplicitUsings", "enable"); } - private static void UpgradeMauiiOS(IProjectPropertyElements projectproperties, IProjectFile file) + private static void UpgradeMauiiOS(IProjectPropertyElements projectProperties, IProjectFile file) { - MauiUtilties.RuntimePropertyMapper(projectproperties, file, "MtouchArch"); - MauiUtilties.TransformProperty(projectproperties, file, "MtouchEnableSGenConc", "EnableSGenConc"); + MauiUtilities.RuntimePropertyMapper(projectProperties, file, "MtouchArch"); + MauiUtilities.TransformProperty(projectProperties, file, "MtouchEnableSGenConc", "EnableSGenConc"); // remove unneeded Properties - projectproperties.RemoveProjectProperty("IPhoneResourcePrefix"); - projectproperties.RemoveProjectProperty("RuntimeIdentifiers"); - projectproperties.RemoveProjectProperty("EnableSGenConc"); - projectproperties.RemoveProjectProperty("ProvisioningType"); - projectproperties.RemoveProjectProperty("MtouchLink"); - projectproperties.RemoveProjectProperty("MtouchDebug"); - projectproperties.RemoveProjectProperty("MtouchInterpreter"); + projectProperties.RemoveProjectProperty("IPhoneResourcePrefix"); + projectProperties.RemoveProjectProperty("RuntimeIdentifiers"); + projectProperties.RemoveProjectProperty("EnableSGenConc"); + projectProperties.RemoveProjectProperty("ProvisioningType"); + projectProperties.RemoveProjectProperty("MtouchLink"); + projectProperties.RemoveProjectProperty("MtouchDebug"); + projectProperties.RemoveProjectProperty("MtouchInterpreter"); } - private static void UpgradeMaui(IProjectPropertyElements projectproperties, IProjectFile file) + private static void UpgradeMaui(IProjectPropertyElements projectProperties, IProjectFile file) { // remove unneeded Properties - projectproperties.RemoveProjectProperty("DebugType"); - projectproperties.RemoveProjectProperty("DebugSymbols"); - projectproperties.RemoveProjectProperty("ProduceReferenceAssembly"); + projectProperties.RemoveProjectProperty("DebugType"); + projectProperties.RemoveProjectProperty("DebugSymbols"); + projectProperties.RemoveProjectProperty("ProduceReferenceAssembly"); // adding MAUI Properties file.SetPropertyValue("OutputType", "Library"); diff --git a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiComponentIdentifier.cs b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiComponentIdentifier.cs index 250eb481b..9dba8e311 100644 --- a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiComponentIdentifier.cs +++ b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiComponentIdentifier.cs @@ -40,7 +40,7 @@ public ValueTask GetComponentsAsync(IProject project, Cancell } } - if (project.NuGetReferences.PackageReferences.Any(x => x.Name.Equals(_xamarinFormsPackage, StringComparison.OrdinalIgnoreCase)) && project.TargetFrameworks.FirstOrDefault().Equals(TargetFrameworkMoniker.NetStandard20)) + if (project.NuGetReferences.PackageReferences.Any(x => x.Name.Equals(_xamarinFormsPackage, StringComparison.OrdinalIgnoreCase)) && project.IsNetStandard()) { components |= ProjectComponents.Maui; } diff --git a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiPlatformTargetFrameworkUpgradeStep.cs b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiPlatformTargetFrameworkUpgradeStep.cs index d2f42b996..f962bd303 100644 --- a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiPlatformTargetFrameworkUpgradeStep.cs +++ b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiPlatformTargetFrameworkUpgradeStep.cs @@ -46,38 +46,38 @@ protected override async Task ApplyImplAsync(IUpgradeCon var project = context.CurrentProject.Required(); var file = project.GetFile(); var components = await project.GetComponentsAsync(token).ConfigureAwait(false); - var projectproperties = project.GetProjectPropertyElements(); - // This block checks TFMs for .NET MAUI Head Project + // This block checks TFMs for .NET MAUI project if (components.HasFlag(ProjectComponents.Maui) && file.IsSdk) { - if (string.Equals(projectproperties.GetProjectPropertyValue("TargetFramework").FirstOrDefault(), TargetFrameworkMoniker.NetStandard20.ToString(), StringComparison.OrdinalIgnoreCase)) + if (project.IsNetStandard()) { - projectproperties.RemoveProjectProperty("TargetFramework"); + var projectProperties = project.GetProjectPropertyElements(); + projectProperties.RemoveProjectProperty("TargetFramework"); file.SetPropertyValue("UseMaui", "true"); file.SetPropertyValue("TargetFrameworks", "net7.0-android;net7.0-ios"); await file.SaveAsync(token).ConfigureAwait(false); - Logger.LogInformation("Added TFMs to .NET MAUI project"); - return new UpgradeStepApplyResult(UpgradeStepStatus.Complete, $"Added TFMs to .NET MAUI Head project"); + Logger.LogInformation("Added TFMs to .NET MAUI project {ProjectName}", project); + return context.CreateAndAddStepApplyResult(this, UpgradeStepStatus.Complete, $"Added TFMs to .NET MAUI project {project}"); } else { - return new UpgradeStepApplyResult(UpgradeStepStatus.Failed, "Project is not of type Maui Head Project"); + return context.CreateAndAddStepApplyResult(this, UpgradeStepStatus.Failed, $"Project {project} is not recognized as a .NET MAUI project (TargetFrameworks: {string.Join(", ", project.TargetFrameworks)})"); } } + // If we're getting here we are dealing with a head project, which received its "componentFlag" in the TryConvertRunner var componentFlagProperty = context.Properties.GetPropertyValue("componentFlag"); if (componentFlagProperty is null) { - return new UpgradeStepApplyResult(UpgradeStepStatus.Failed, $"componentFlag Context property was null."); + return context.CreateAndAddStepApplyResult(this, UpgradeStepStatus.Failed, $"componentFlag Context property was null"); } var targetTfm = GetExpectedTargetFramework(componentFlagProperty); file.SetTFM(targetTfm); - Logger.LogInformation("TFM set to {TargetTFM}", targetTfm); - await file.SaveAsync(token).ConfigureAwait(false); - return new UpgradeStepApplyResult(UpgradeStepStatus.Complete, $"Added TFM {targetTfm} to .NET MAUI project "); + Logger.LogInformation("Added TFM {TargetTFM} to .NET MAUI head project {ProjectName}", targetTfm, project); + return context.CreateAndAddStepApplyResult(this, UpgradeStepStatus.Complete, $"Added TFM {targetTfm} to .NET MAUI head project {project}"); } protected async override Task InitializeImplAsync(IUpgradeContext context, CancellationToken token) @@ -89,16 +89,15 @@ protected async override Task InitializeImplAsync(I var project = context.CurrentProject.Required(); var components = await project.GetComponentsAsync(token).ConfigureAwait(false); - var projectproperties = project.GetProjectPropertyElements(); // This block checks TFMs for .NET MAUI Head Project if (components.HasFlag(ProjectComponents.Maui)) { - if (project.TargetFrameworks.Any(x => x.IsNetStandard)) + if (project.IsNetStandard()) { - Logger.LogInformation("TFM needs updated to .NET MAUI TFMs"); + Logger.LogInformation("TFM needs to be updated to .NET MAUI TFMs"); - return new UpgradeStepInitializeResult(UpgradeStepStatus.Incomplete, "TFM needs to be updated to .NET MAUI Targetframeworks", BuildBreakRisk.High); + return new UpgradeStepInitializeResult(UpgradeStepStatus.Incomplete, "TFM needs to be updated to .NET MAUI TargetFrameworks", BuildBreakRisk.High); } else { @@ -120,7 +119,7 @@ protected async override Task InitializeImplAsync(I } else { - Logger.LogInformation("TFM needs updated to {TargetTFM}", targetTfm); + Logger.LogInformation("TFM needs to be updated to {TargetTFM}", targetTfm); return new UpgradeStepInitializeResult(UpgradeStepStatus.Incomplete, $"TFM needs to be updated to {targetTfm}", BuildBreakRisk.High); } } diff --git a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiTargetFrameworkSelectorFilter.cs b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiTargetFrameworkSelectorFilter.cs index c5e5c27d0..80192065b 100644 --- a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiTargetFrameworkSelectorFilter.cs +++ b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiTargetFrameworkSelectorFilter.cs @@ -3,6 +3,7 @@ using System; using System.Linq; +using Microsoft.CodeAnalysis; using Microsoft.Extensions.Logging; namespace Microsoft.DotNet.UpgradeAssistant.Extensions.Maui @@ -25,39 +26,36 @@ public void Process(ITargetFrameworkSelectorFilterState tfm) if (tfm.Components.HasFlag(ProjectComponents.XamarinAndroid)) { - _logger.LogInformation("Project {Name} is of type Xamarin.Android, migration to .NET MAUI recommends net7.0-android.", tfm.Project); + _logger.LogInformation("Recommending TFM {TFM} for project {Name} because project is of type Xamarin.Android", TargetFrameworkMoniker.Net70_Android, tfm.Project); tfm.TryUpdate(TargetFrameworkMoniker.Net70_Android); } if (tfm.Components.HasFlag(ProjectComponents.XamariniOS)) { - _logger.LogInformation("Project {Name} is of type Xamarin.iOS, migration to .NET MAUI recommends net7.0-ios.", tfm.Project); + _logger.LogInformation("Recommending TFM {TFM} for project {Name} because project is of type Xamarin.iOS", TargetFrameworkMoniker.Net70_iOS, tfm.Project); tfm.TryUpdate(TargetFrameworkMoniker.Net70_iOS); } - if (tfm.Components.HasFlag(ProjectComponents.MauiAndroid)) + if (tfm.Components.HasFlag(ProjectComponents.Maui) && tfm.Project?.TargetFrameworks.Count > 1) { - _logger.LogInformation("Project {Name} is of type .NET MAUI Target:Android, migration to .NET MAUI recommends net7.0-android.", tfm.Project); + TargetFrameworkMoniker targetFrameworkMoniker = tfm.Project.TargetFrameworks.FirstOrDefault(); + _logger.LogInformation("Recommending TFM {TFM} for project {Name} because project is of type .NET MAUI with multiple TFMs: {TFMs}", targetFrameworkMoniker, tfm.Project, string.Join(", ", tfm.Project.TargetFrameworks)); + tfm.TryUpdate(targetFrameworkMoniker); + } + else if (tfm.Components.HasFlag(ProjectComponents.MauiAndroid)) + { + _logger.LogInformation("Recommending TFM {TFM} for project {Name} because project is of type .NET MAUI Target:Android", TargetFrameworkMoniker.Net70_Android, tfm.Project); tfm.TryUpdate(TargetFrameworkMoniker.Net70_Android); } - - if (tfm.Components.HasFlag(ProjectComponents.MauiiOS)) + else if (tfm.Components.HasFlag(ProjectComponents.MauiiOS)) { - _logger.LogInformation("Project {Name} is of type .NET MAUI Target:iOS, migration to .NET MAUI recommends net7.0-ios.", tfm.Project); + _logger.LogInformation("Recommending TFM {TFM} for project {Name} because project is of type .NET MAUI Target:iOS", TargetFrameworkMoniker.Net70_Android, tfm.Project); tfm.TryUpdate(TargetFrameworkMoniker.Net70_iOS); } - - if (tfm.Components.HasFlag(ProjectComponents.Maui)) + else if (tfm.Components.HasFlag(ProjectComponents.Maui)) { - if (tfm.Project?.TargetFrameworks.Count > 1) - { - tfm.TryUpdate(tfm.Project.TargetFrameworks.FirstOrDefault()); - } - else - { - _logger.LogInformation("Project {Name} is of type .NET MAUI Target: MAUI head, migration to .NET MAUI requires to be multiplatform", tfm.Project); - tfm.TryUpdate(TargetFrameworkMoniker.Net70_Android); - } + _logger.LogInformation("Recommending TFM {TFM} for project {Name} because project is of type .NET MAUI", TargetFrameworkMoniker.Net70_Android, tfm.Project); + tfm.TryUpdate(TargetFrameworkMoniker.Net70_Android); } } } diff --git a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiUtilties.cs b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiUtilities.cs similarity index 69% rename from src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiUtilties.cs rename to src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiUtilities.cs index bbcf08163..e0ca40cc4 100644 --- a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiUtilties.cs +++ b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiUtilities.cs @@ -6,12 +6,24 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; +using Microsoft.CodeAnalysis.CSharp.Syntax; namespace Microsoft.DotNet.UpgradeAssistant.Extensions.Maui { - internal static class MauiUtilties + internal static class MauiUtilities { - public static async Task GetMauiProjectTypeForProject(IProject project, CancellationToken token) + public static UpgradeStepApplyResult CreateAndAddStepApplyResult(this IUpgradeContext context, UpgradeStep step, UpgradeStepStatus status, string message, string? location = null, string? details = null) + { + context?.AddResultForStep(step, location ?? context.CurrentProject?.GetFile()?.FilePath ?? string.Empty, status, message, details); + return new UpgradeStepApplyResult(status, string.IsNullOrEmpty(details) ? message : string.Concat(message, Environment.NewLine, details)); + } + + public static bool IsNetStandard(this IProject project) + { + return project?.TargetFrameworks.Any(x => x.IsNetStandard) ?? false; + } + + public static async Task GetMauiProjectType(this IProject project, CancellationToken token) { var components = await project.GetComponentsAsync(token).ConfigureAwait(false); if (components.HasFlag(ProjectComponents.MauiiOS) && components.HasFlag(ProjectComponents.MauiAndroid) && components.HasFlag(ProjectComponents.Maui)) @@ -30,7 +42,7 @@ public static async Task GetMauiProjectTypeForProject(IProject return MauiProjectType.Maui; } - public static void RuntimePropertyMapper(IProjectPropertyElements projectproperties, IProjectFile file, string oldRumtimePropertyName) + public static void RuntimePropertyMapper(IProjectPropertyElements projectProperties, IProjectFile file, string oldRuntimePropertyName) { // following conversion mapping here : https://github.com/xamarin/xamarin-macios/wiki/Project-file-properties-dotnet-migration var runtimeMapping = new Dictionary() @@ -42,15 +54,15 @@ public static void RuntimePropertyMapper(IProjectPropertyElements projectpropert { "ARMv7+ARM64+i386", "ios-arm;ios-arm64;" }, }; - var runtimeprops = projectproperties.GetProjectPropertyValue(oldRumtimePropertyName).Distinct(); + var runtimeProps = projectProperties.GetProjectPropertyValue(oldRuntimePropertyName).Distinct(); var runtimeIdentifierString = string.Empty; - foreach (var prop in runtimeprops) + foreach (var prop in runtimeProps) { runtimeIdentifierString += runtimeMapping[prop]; } // remove old properties before adding new - projectproperties.RemoveProjectProperty(oldRumtimePropertyName); + projectProperties.RemoveProjectProperty(oldRuntimePropertyName); if (runtimeIdentifierString.Count(x => x.Equals(';')) > 1) { file.SetPropertyValue("RuntimeIdentifiers", runtimeIdentifierString); @@ -61,12 +73,12 @@ public static void RuntimePropertyMapper(IProjectPropertyElements projectpropert } } - public static void TransformProperty(IProjectPropertyElements projectproperties, IProjectFile file, string oldpropertyName, string newPropertyName, string oldPropertyValue = "", string newPropertyValue = "") + public static void TransformProperty(IProjectPropertyElements projectProperties, IProjectFile file, string oldPropertyName, string newPropertyName, string oldPropertyValue = "", string newPropertyValue = "") { - var currentPropertyValue = projectproperties.GetProjectPropertyValue(oldpropertyName).FirstOrDefault(); + var currentPropertyValue = projectProperties.GetProjectPropertyValue(oldPropertyName).FirstOrDefault(); if (!string.IsNullOrEmpty(currentPropertyValue)) { - projectproperties.RemoveProjectProperty(oldpropertyName); + projectProperties.RemoveProjectProperty(oldPropertyName); if (string.Equals(currentPropertyValue, oldPropertyValue, StringComparison.OrdinalIgnoreCase)) { diff --git a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiWorkloadUpgradeStep.cs b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiWorkloadUpgradeStep.cs index 6631a4a78..b985c1d9c 100644 --- a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiWorkloadUpgradeStep.cs +++ b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/MauiWorkloadUpgradeStep.cs @@ -4,9 +4,11 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Text; using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using static System.FormattableString; namespace Microsoft.DotNet.UpgradeAssistant.Extensions.Maui @@ -20,17 +22,19 @@ public class MauiWorkloadUpgradeStep : UpgradeStep { "maui", ProjectComponents.MauiAndroid | ProjectComponents.MauiiOS }, }; - private static bool? _infoSucceeded; + private static StringBuilder? _infoResult; private static bool? _installSucceeded; + private readonly IOptions _testOptions; private readonly IProcessRunner _runner; public override string Title => "Install .NET MAUI Workload"; public override string Description => "Check the .NET SDK for the MAUI workload and install it if necessary."; - public MauiWorkloadUpgradeStep(ILogger logger, IProcessRunner runner) + public MauiWorkloadUpgradeStep(IOptions testOptions, ILogger logger, IProcessRunner runner) : base(logger) { + _testOptions = testOptions; _runner = runner ?? throw new ArgumentNullException(nameof(runner)); } @@ -58,16 +62,20 @@ protected override async Task ApplyImplAsync(IUpgradeCon return new UpgradeStepApplyResult(UpgradeStepStatus.Skipped, ".NET MAUI workload install has already been run"); } - _installSucceeded = await RunDotnetCommandAsync(context, "workload install maui", (_, message) => LogLevel.Information, token).ConfigureAwait(false); + StringBuilder resultBuilder = new(); + _installSucceeded = await RunDotnetCommandAsync(context, "workload install maui", (_, message) => + { + resultBuilder.AppendLine(message); + return LogLevel.Information; + }, token).ConfigureAwait(false); if (!_installSucceeded.Value) { - Logger.LogError("Command 'dotnet workload install maui' failed!"); - - return new UpgradeStepApplyResult(UpgradeStepStatus.Failed, ".NET MAUI workload installation failed!"); + return context.CreateAndAddStepApplyResult(this, UpgradeStepStatus.Failed, ".NET MAUI workload installation failed", + details: string.Concat(resultBuilder.ToString(), Environment.NewLine, _infoResult?.ToString())); } - return new UpgradeStepApplyResult(UpgradeStepStatus.Complete, $".NET MAUI workload installation succeeded."); + return context.CreateAndAddStepApplyResult(this, UpgradeStepStatus.Complete, ".NET MAUI workload installation succeeded"); } // Check if the right MAUI workload is installed @@ -78,6 +86,11 @@ protected async override Task InitializeImplAsync(I throw new ArgumentNullException(nameof(context)); } + if (_testOptions.Value.IsRunningTest) + { + return new UpgradeStepInitializeResult(UpgradeStepStatus.Skipped, ".NET MAUI workload install not performed during test", BuildBreakRisk.High); + } + if (_installSucceeded.HasValue) { return new UpgradeStepInitializeResult(UpgradeStepStatus.Skipped, ".NET MAUI workload install has already been run", _installSucceeded.Value ? BuildBreakRisk.None : BuildBreakRisk.High); @@ -87,10 +100,17 @@ protected async override Task InitializeImplAsync(I var components = await project.GetComponentsAsync(token).ConfigureAwait(false); var workloads = ProjectComponents.None; - if (!_infoSucceeded.HasValue) + if (_infoResult == null) { + _infoResult = new(); + // We only need to display the dotnet info debug information once - _infoSucceeded = await RunDotnetCommandAsync(context, "--info", (_, message) => LogLevel.Debug, token).ConfigureAwait(false); + // Save the output to add to result details in case of a workload install failure + await RunDotnetCommandAsync(context, "--info", (_, message) => + { + _infoResult.AppendLine(message); + return LogLevel.Debug; + }, token).ConfigureAwait(false); } var result = await RunDotnetCommandAsync(context, "workload list", (_, message) => @@ -129,6 +149,12 @@ protected override async Task IsApplicableImplAsync(IUpgradeContext contex return false; } + if (_installSucceeded.HasValue) + { + // Only need to attempt this once per session + return false; + } + var project = context.CurrentProject.Required(); var components = await project.GetComponentsAsync(token).ConfigureAwait(false); diff --git a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/XamlNamespaceUpgradeStep.cs b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/XamlNamespaceUpgradeStep.cs index ab0531c34..5b033b29f 100644 --- a/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/XamlNamespaceUpgradeStep.cs +++ b/src/extensions/maui/Microsoft.DotNet.UpgradeAssistant.Extensions.Maui/XamlNamespaceUpgradeStep.cs @@ -88,7 +88,7 @@ protected override async Task ApplyImplAsync(IUpgradeCon await projectFile.SaveAsync(token).ConfigureAwait(false); } - return new UpgradeStepApplyResult(status, $"Updated XAML namespaces to .NET MAUI"); + return context.CreateAndAddStepApplyResult(this, status, "Updated XAML namespaces to .NET MAUI"); } protected override async Task InitializeImplAsync(IUpgradeContext context, CancellationToken token) @@ -114,7 +114,7 @@ protected override async Task InitializeImplAsync(I Logger.LogInformation(".NET MAUI project does not contain any XAML files"); return new UpgradeStepInitializeResult(UpgradeStepStatus.Complete, ".NET MAUI project does not contain any XAML files", BuildBreakRisk.None); } - }); + }).ConfigureAwait(false); } protected override async Task IsApplicableImplAsync(IUpgradeContext context, CancellationToken token) diff --git a/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/SdkStyleConversionSolutionWideStep.cs b/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/SdkStyleConversionSolutionWideStep.cs index 78a2be2a0..130aadd43 100644 --- a/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/SdkStyleConversionSolutionWideStep.cs +++ b/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/SdkStyleConversionSolutionWideStep.cs @@ -95,7 +95,7 @@ public ProjectSdkConversionStep(TryConvertRunner runner, FileInfo project, ILogg public override string Description => $"Convert {_project.Name} from old-style project format to SDK style project."; protected override Task ApplyImplAsync(IUpgradeContext context, CancellationToken token) - => _runner.ApplyAsync(context, context.GetProject(_project.FullName), token); + => _runner.ApplyAsync(this, context, context.GetProject(_project.FullName), token); protected override Task InitializeImplAsync(IUpgradeContext context, CancellationToken token) => _runner.InitializeAsync(context.GetProject(_project.FullName), token); diff --git a/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/TryConvertProjectConverterStep.cs b/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/TryConvertProjectConverterStep.cs index 4952aec02..edcb67f77 100644 --- a/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/TryConvertProjectConverterStep.cs +++ b/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/TryConvertProjectConverterStep.cs @@ -49,7 +49,7 @@ protected override Task ApplyImplAsync(IUpgradeContext c throw new ArgumentNullException(nameof(context)); } - return _runner.ApplyAsync(context, context.CurrentProject.Required(), token); + return _runner.ApplyAsync(this, context, context.CurrentProject.Required(), token); } protected override Task InitializeImplAsync(IUpgradeContext context, CancellationToken token) diff --git a/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/TryConvertRunner.cs b/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/TryConvertRunner.cs index ecc7937e9..9cf4d068a 100644 --- a/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/TryConvertRunner.cs +++ b/src/extensions/try-convert/Microsoft.DotNet.UpgradeAssistant.Extensions.TryConvert/TryConvertRunner.cs @@ -23,11 +23,11 @@ public TryConvertRunner(ITryConvertTool tool, IPackageRestorer restorer, ILogger _logger = logger; } - public string VersionString => _tool?.Version is null ? string.Empty : $", version {_tool.Version}"; + public string VersionString => _tool?.Version is null ? string.Empty : $", Version={_tool.Version}"; public string Path => _tool.Path; - public async Task ApplyAsync(IUpgradeContext context, IProject project, CancellationToken token) + public async Task ApplyAsync(UpgradeStep step, IUpgradeContext context, IProject project, CancellationToken token) { if (context is null) { @@ -45,7 +45,7 @@ public async Task ApplyAsync(IUpgradeContext context, IP context.Properties.SetPropertyValue("componentFlag", components.ToString(), true); } - var result = await RunTryConvertAsync(context, project, token).ConfigureAwait(false); + var result = await RunTryConvertAsync(step, context, project, token).ConfigureAwait(false); await _restorer.RestorePackagesAsync(context, project, token).ConfigureAwait(false); @@ -85,13 +85,12 @@ public async Task InitializeAsync(IProject project, } } - private void AddResultToContext(IUpgradeContext context, UpgradeStepStatus status, string resultMessage) + private static void AddResultToContext(UpgradeStep step, IUpgradeContext context, UpgradeStepStatus status, string resultMessage) { - context.AddResult(TryConvertProjectConverterStep.StepTitle, context.CurrentProject?.GetFile()?.FilePath ?? string.Empty, - WellKnownStepIds.TryConvertProjectConverterStepId, status, resultMessage); + context.AddResultForStep(step, context.CurrentProject?.GetFile()?.FilePath ?? string.Empty, status, resultMessage); } - private async Task RunTryConvertAsync(IUpgradeContext context, IProject project, CancellationToken token) + private async Task RunTryConvertAsync(UpgradeStep step, IUpgradeContext context, IProject project, CancellationToken token) { _logger.LogInformation($"Converting project file format with try-convert{VersionString}"); @@ -105,14 +104,14 @@ private async Task RunTryConvertAsync(IUpgradeContext co { var description = "Conversion with try-convert failed."; _logger.LogCritical(description); - AddResultToContext(context, UpgradeStepStatus.Failed, description); + AddResultToContext(step, context, UpgradeStepStatus.Failed, description); return new UpgradeStepApplyResult(UpgradeStepStatus.Failed, description); } else { var description = "Project file converted successfully! The project may require additional changes to build successfully against the new .NET target."; _logger.LogInformation(description); - AddResultToContext(context, UpgradeStepStatus.Complete, description); + AddResultToContext(step, context, UpgradeStepStatus.Complete, description); return new UpgradeStepApplyResult(UpgradeStepStatus.Complete, "Project file converted successfully"); } } diff --git a/src/extensions/web/Microsoft.DotNet.UpgradeAssistant.Extensions.Web/WebProjectTargetFrameworkSelectorFilter.cs b/src/extensions/web/Microsoft.DotNet.UpgradeAssistant.Extensions.Web/WebProjectTargetFrameworkSelectorFilter.cs index bd663d6da..c2b18d6c7 100644 --- a/src/extensions/web/Microsoft.DotNet.UpgradeAssistant.Extensions.Web/WebProjectTargetFrameworkSelectorFilter.cs +++ b/src/extensions/web/Microsoft.DotNet.UpgradeAssistant.Extensions.Web/WebProjectTargetFrameworkSelectorFilter.cs @@ -26,7 +26,7 @@ public void Process(ITargetFrameworkSelectorFilterState tfm) { if (tfm.TryUpdate(tfm.AppBase)) { - _logger.LogInformation("Recommending executable TFM {TFM} because the project builds to a web app", tfm.AppBase); + _logger.LogInformation("Recommending executable TFM {TFM} for project {Name} because the project builds to a web app", tfm.AppBase, tfm.Project); } } } diff --git a/src/extensions/windows/Microsoft.DotNet.UpgradeAssistant.Extensions.Windows/WindowsDesktopUpdaterSubStep.cs b/src/extensions/windows/Microsoft.DotNet.UpgradeAssistant.Extensions.Windows/WindowsDesktopUpdaterSubStep.cs index 67f8bbab6..0dadb8fbf 100644 --- a/src/extensions/windows/Microsoft.DotNet.UpgradeAssistant.Extensions.Windows/WindowsDesktopUpdaterSubStep.cs +++ b/src/extensions/windows/Microsoft.DotNet.UpgradeAssistant.Extensions.Windows/WindowsDesktopUpdaterSubStep.cs @@ -108,6 +108,7 @@ private void AddResultToContext(IUpgradeContext context, WindowsDesktopUpdaterRe : ImmutableList.Create(context.CurrentProject!.GetFile().FilePath); var results = fileLocations.Select(location => new OutputResult() { + Level = updaterResult.Result ? OutputLevel.Info : OutputLevel.Error, FileLocation = location, RuleId = updaterResult.RuleId, ResultMessage = $"{(updaterResult.Result ? "Success" : "Failed")}: {updaterResult.Message}", diff --git a/src/extensions/windows/Microsoft.DotNet.UpgradeAssistant.Extensions.Windows/WindowsSdkTargetFrameworkSelectorFilter.cs b/src/extensions/windows/Microsoft.DotNet.UpgradeAssistant.Extensions.Windows/WindowsSdkTargetFrameworkSelectorFilter.cs index efa4d2314..9f818a7aa 100644 --- a/src/extensions/windows/Microsoft.DotNet.UpgradeAssistant.Extensions.Windows/WindowsSdkTargetFrameworkSelectorFilter.cs +++ b/src/extensions/windows/Microsoft.DotNet.UpgradeAssistant.Extensions.Windows/WindowsSdkTargetFrameworkSelectorFilter.cs @@ -28,7 +28,7 @@ public void Process(ITargetFrameworkSelectorFilterState tfm) { if (tfm.TryUpdate(result)) { - _logger.LogInformation("Recommending Windows TFM {TFM} because the project either has Windows-specific dependencies or builds to a WinExe", result); + _logger.LogInformation("Recommending Windows TFM {TFM} for project {Name} because the project either has Windows-specific dependencies or builds to a WinExe", result, tfm.Project); } } } diff --git a/tests/components/Microsoft.DotNet.UpgradeAssistant.Analysis.Tests/SarifAnalyzeResultWriterTests.cs b/tests/components/Microsoft.DotNet.UpgradeAssistant.Analysis.Tests/SarifAnalyzeResultWriterTests.cs index d058cd808..1dd6a308b 100644 --- a/tests/components/Microsoft.DotNet.UpgradeAssistant.Analysis.Tests/SarifAnalyzeResultWriterTests.cs +++ b/tests/components/Microsoft.DotNet.UpgradeAssistant.Analysis.Tests/SarifAnalyzeResultWriterTests.cs @@ -35,6 +35,7 @@ public async Task ValidateSarifMetadata() { new OutputResult { + Level = OutputLevel.Error, FileLocation = "some-file-path", LineNumber = 1, ResultMessage = "some result message", @@ -71,6 +72,10 @@ public async Task ValidateSarifMetadata() Assert.Equal(analyzeResult.RuleName, rule.Name); Assert.Equal(analyzeResult.FullDescription, rule.FullDescription.Text); Assert.Equal(analyzeResult.HelpUri, rule.HelpUri); + var result = sarifLog.Runs[0].Results.First(); + Assert.Equal(analyzeResult.RuleId, result.RuleId); + Assert.Equal(analyzeResult.ResultMessage, result.Message.Text); + Assert.Equal(FailureLevel.Error, result.Level); } [Fact] diff --git a/tests/components/Microsoft.DotNet.UpgradeAssistant.Tests/UpgraderTests.cs b/tests/components/Microsoft.DotNet.UpgradeAssistant.Tests/UpgraderTests.cs index 4db140c09..4e60b65c3 100644 --- a/tests/components/Microsoft.DotNet.UpgradeAssistant.Tests/UpgraderTests.cs +++ b/tests/components/Microsoft.DotNet.UpgradeAssistant.Tests/UpgraderTests.cs @@ -74,6 +74,8 @@ public async Task CompletedStepsAreNotEnumerated(UpgradeStep[] steps, string[] e using var mock = AutoMock.GetLoose(b => b.RegisterInstance(GetOrderer(steps))); var upgrader = mock.Create(); + mock.Mock().Setup(u => u.IsInteractive).Returns(true); + var context = mock.Mock(); context.SetupProperty(c => c.CurrentStep); @@ -99,6 +101,8 @@ public async Task FailedStepsAreEnumerated() using var mock = AutoMock.GetLoose(b => b.RegisterInstance(GetOrderer(steps))); var upgrader = mock.Create(); + mock.Mock().Setup(u => u.IsInteractive).Returns(true); + var context = mock.Mock(); context.SetupProperty(c => c.CurrentStep); diff --git a/tests/tool/Integration.Tests/E2ETest.cs b/tests/tool/Integration.Tests/E2ETest.cs index a90a94a25..cfc40ca65 100644 --- a/tests/tool/Integration.Tests/E2ETest.cs +++ b/tests/tool/Integration.Tests/E2ETest.cs @@ -9,6 +9,7 @@ using System.Text.RegularExpressions; using System.Threading.Tasks; using AutoMapper.Configuration.Annotations; +using Microsoft.CodeAnalysis.Sarif; using Microsoft.DotNet.UpgradeAssistant; using Microsoft.DotNet.UpgradeAssistant.Cli; using Xunit; @@ -39,14 +40,14 @@ public E2ETest(ITestOutputHelper output) [InlineData("PCL", "SamplePCL.csproj", "")] [InlineData("WpfSample/csharp", "BeanTrader.sln", "BeanTraderClient.csproj")] -/* - [InlineData("WebLibrary/csharp", "WebLibrary.csproj", "")] - [InlineData("AspNetSample/csharp", "TemplateMvc.csproj", "")] -*/ + /* + [InlineData("WebLibrary/csharp", "WebLibrary.csproj", "")] + [InlineData("AspNetSample/csharp", "TemplateMvc.csproj", "")] + */ [InlineData("WpfSample/vb", "WpfApp1.sln", "")] [InlineData("WCFSample", "ConsoleApp.csproj", "")] - // TODO: [mgoertz] Re-enable after .NET 7 GA + // TODO: [mgoertz] Re-enable after MAUI workloads are installed on test machines // [InlineData("MauiSample/droid", "EwDavidForms.sln", "EwDavidForms.Android.csproj")] // [InlineData("MauiSample/ios", "EwDavidForms.sln", "EwDavidForms.iOS.csproj")] [Theory] @@ -135,7 +136,8 @@ private void AssertDirectoriesEqual(string expectedDir, string actualDir) .Replace(actualDir.Replace("\\", "/"), "[ACTUAL_PROJECT_ROOT]") .Replace(Directory.GetCurrentDirectory().Replace("\\", "/"), "[UA_PROJECT_BIN]"); - actualText = Regex.Replace(actualText, "Version=(\\d+\\.){3}([\\da-zA-Z\\-])+", "[VERSION]"); + // Replace version strings, such as "Version=42.42.42.42" or "Version=0.4.0-dev" + actualText = Regex.Replace(actualText, @"Version=\d+(\.\d+){2}(((\.\d+){1})|([\da-zA-Z\-])*)", "[VERSION]"); } if (!string.Equals(expectedText, actualText, StringComparison.Ordinal)) diff --git a/tests/tool/Integration.Tests/IntegrationScenarios/AspNetSample/csharp/Upgraded/UpgradeReport.sarif b/tests/tool/Integration.Tests/IntegrationScenarios/AspNetSample/csharp/Upgraded/UpgradeReport.sarif index 75d1e62f8..567d9ce89 100644 --- a/tests/tool/Integration.Tests/IntegrationScenarios/AspNetSample/csharp/Upgraded/UpgradeReport.sarif +++ b/tests/tool/Integration.Tests/IntegrationScenarios/AspNetSample/csharp/Upgraded/UpgradeReport.sarif @@ -12,7 +12,7 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", "fullDescription": { - "text": "Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." + "text": "Use the try-convert tool (, [VERSION]) to convert the project file to an SDK-style csproj" }, "helpUri": "about:blank" } diff --git a/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/droid/Upgraded/EwDavidForms/EwDavidForms/EwDavidForms.csproj b/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/droid/Upgraded/EwDavidForms/EwDavidForms/EwDavidForms.csproj index 5f3375e9b..ff34c3c6b 100644 --- a/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/droid/Upgraded/EwDavidForms/EwDavidForms/EwDavidForms.csproj +++ b/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/droid/Upgraded/EwDavidForms/EwDavidForms/EwDavidForms.csproj @@ -1,7 +1,7 @@ true - net6.0-android;net6.0-ios + net7.0-android;net7.0-ios Library enable diff --git a/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/droid/Upgraded/UpgradeReport.sarif b/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/droid/Upgraded/UpgradeReport.sarif index 4feb5d9b3..ca249664f 100644 --- a/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/droid/Upgraded/UpgradeReport.sarif +++ b/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/droid/Upgraded/UpgradeReport.sarif @@ -5,16 +5,49 @@ { "tool": { "driver": { - "name": "Remove package 'Microsoft.AppCenter.Analytics'", + "name": "Add TargetFramework for .NET MAUI Project", "semanticVersion": "", "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiPlatformTargetFrameworkUpgradeStep", "fullDescription": { - "text": "Remove package 'Microsoft.AppCenter.Analytics'" - }, - "helpUri": "about:blank" + "text": "Add Platform TargetFramework for XamarinForms projects being converted" + } + } + ] + } + }, + "results": [ + { + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiPlatformTargetFrameworkUpgradeStep", + "level": "note", + "message": { + "text": "Complete: Added TFMs to .NET MAUI project EwDavidForms.csproj" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///[ACTUAL_PROJECT_ROOT]/EwDavidForms/EwDavidForms/EwDavidForms.csproj" + }, + "region": {} + } + } + ] + } + ], + "columnKind": "utf16CodeUnits" + }, + { + "tool": { + "driver": { + "name": "Remove package 'Microsoft.AppCenter.Analytics'", + "semanticVersion": "", + "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", + "rules": [ + { + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -22,6 +55,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.AppCenter.Analytics'" }, @@ -47,11 +81,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Microsoft.AppCenter.Crashes'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -59,6 +89,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.AppCenter.Crashes'" }, @@ -84,11 +115,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.CommunityToolkit'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -96,6 +123,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.CommunityToolkit'" }, @@ -121,11 +149,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Forms'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -133,6 +157,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Forms'" }, @@ -158,11 +183,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Essentials'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -170,6 +191,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Essentials'" }, @@ -195,11 +217,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'CommunityToolkit.Maui'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -207,6 +225,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'CommunityToolkit.Maui'" }, @@ -232,11 +251,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -244,6 +259,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" }, @@ -261,6 +277,43 @@ ], "columnKind": "utf16CodeUnits" }, + { + "tool": { + "driver": { + "name": "Update Project Properties for .NET MAUI Project", + "semanticVersion": "", + "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", + "rules": [ + { + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiAddProjectPropertiesStep", + "fullDescription": { + "text": "Updates the platform-specific project properties for a .NET MAUI project" + } + } + ] + } + }, + "results": [ + { + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiAddProjectPropertiesStep", + "level": "note", + "message": { + "text": "Complete: Updated Maui project properties for .NET MAUI project EwDavidForms.csproj" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///[ACTUAL_PROJECT_ROOT]/EwDavidForms/EwDavidForms/EwDavidForms.csproj" + }, + "region": {} + } + } + ] + } + ], + "columnKind": "utf16CodeUnits" + }, { "tool": { "driver": { @@ -271,9 +324,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Templates.TemplateInserterStep", "fullDescription": { - "text": "Added template file MauiProgram.cs" - }, - "helpUri": "about:blank" + "text": "Add template files (for startup code paths, for example) based on template files described in: Program.cs, Startup.cs, appsettings.json, appsettings.Development.json, Program.vb, Startup.vb, appsettings.json, appsettings.Development.json, app.manifest, Properties\\launchSettings.json, Properties\\PublishProfiles\\win10-arm64.pubxml, Properties\\PublishProfiles\\win10-x64.pubxml, Properties\\PublishProfiles\\win10-x86.pubxml, App.xaml.cs, MainWindow.xaml.cs, MainWindow.xaml, UWPToWinAppSDKUpgradeHelpers.cs, MainApplication.cs, MauiProgram.cs" + } } ] } @@ -281,6 +333,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Templates.TemplateInserterStep", + "level": "note", "message": { "text": "Complete: Added template file MauiProgram.cs" }, @@ -298,6 +351,43 @@ ], "columnKind": "utf16CodeUnits" }, + { + "tool": { + "driver": { + "name": "Update XAML Namespaces", + "semanticVersion": "", + "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", + "rules": [ + { + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.XamlNamespaceUpgradeStep", + "fullDescription": { + "text": "Updates XAML namespaces to .NET MAUI" + } + } + ] + } + }, + "results": [ + { + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.XamlNamespaceUpgradeStep", + "level": "note", + "message": { + "text": "Complete: Updated XAML namespaces to .NET MAUI" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///[ACTUAL_PROJECT_ROOT]/EwDavidForms/EwDavidForms/EwDavidForms.csproj" + }, + "region": {} + } + } + ] + } + ], + "columnKind": "utf16CodeUnits" + }, { "tool": { "driver": { @@ -308,9 +398,8 @@ { "id": "UA0014", "fullDescription": { - "text": "Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\App.xaml.cs" - }, - "helpUri": "about:blank" + "text": "Update source files to automatically fix upgrade analyzer UA0014" + } } ] } @@ -318,6 +407,7 @@ "results": [ { "ruleId": "UA0014", + "level": "note", "message": { "text": "Complete: Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\App.xaml.cs" }, @@ -345,9 +435,8 @@ { "id": "UA0014", "fullDescription": { - "text": "Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\AssemblyInfo.cs" - }, - "helpUri": "about:blank" + "text": "Update source files to automatically fix upgrade analyzer UA0014" + } } ] } @@ -355,6 +444,7 @@ "results": [ { "ruleId": "UA0014", + "level": "note", "message": { "text": "Complete: Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\AssemblyInfo.cs" }, @@ -382,9 +472,8 @@ { "id": "UA0014", "fullDescription": { - "text": "Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\MainPage.xaml.cs" - }, - "helpUri": "about:blank" + "text": "Update source files to automatically fix upgrade analyzer UA0014" + } } ] } @@ -392,6 +481,7 @@ "results": [ { "ruleId": "UA0014", + "level": "note", "message": { "text": "Complete: Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\MainPage.xaml.cs" }, @@ -419,9 +509,8 @@ { "id": "UA0014", "fullDescription": { - "text": "Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\App.xaml.cs" - }, - "helpUri": "about:blank" + "text": "Update source files to automatically fix upgrade analyzer UA0014" + } } ] } @@ -429,6 +518,7 @@ "results": [ { "ruleId": "UA0014", + "level": "note", "message": { "text": "Complete: Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\App.xaml.cs" }, @@ -456,9 +546,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", "fullDescription": { - "text": "Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." - }, - "helpUri": "about:blank" + "text": "Use the try-convert tool (, [VERSION]) to convert the project file to an SDK-style csproj" + } } ] } @@ -466,6 +555,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", + "level": "note", "message": { "text": "Complete: Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." }, @@ -486,16 +576,49 @@ { "tool": { "driver": { - "name": "Remove package 'Microsoft.AppCenter.Analytics'", + "name": "Add TargetFramework for .NET MAUI Project", "semanticVersion": "", "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiPlatformTargetFrameworkUpgradeStep", "fullDescription": { - "text": "Remove package 'Microsoft.AppCenter.Analytics'" - }, - "helpUri": "about:blank" + "text": "Add Platform TargetFramework for XamarinForms projects being converted" + } + } + ] + } + }, + "results": [ + { + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiPlatformTargetFrameworkUpgradeStep", + "level": "note", + "message": { + "text": "Complete: Added TFM net7.0-android to .NET MAUI head project EwDavidForms.Android.csproj" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///[ACTUAL_PROJECT_ROOT]/EwDavidForms/EwDavidForms.Android/EwDavidForms.Android.csproj" + }, + "region": {} + } + } + ] + } + ], + "columnKind": "utf16CodeUnits" + }, + { + "tool": { + "driver": { + "name": "Remove package 'Microsoft.AppCenter.Analytics'", + "semanticVersion": "", + "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", + "rules": [ + { + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -503,6 +626,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.AppCenter.Analytics'" }, @@ -528,11 +652,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Microsoft.AppCenter.Crashes'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -540,6 +660,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.AppCenter.Crashes'" }, @@ -565,11 +686,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.CommunityToolkit'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -577,6 +694,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.CommunityToolkit'" }, @@ -602,11 +720,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Forms'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -614,6 +728,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Forms'" }, @@ -639,11 +754,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Essentials'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -651,6 +762,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Essentials'" }, @@ -676,11 +788,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Android.Support.Design'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -688,6 +796,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Android.Support.Design'" }, @@ -713,11 +822,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Android.Support.v7.AppCompat'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -725,6 +830,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Android.Support.v7.AppCompat'" }, @@ -750,11 +856,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Android.Support.v4'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -762,6 +864,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Android.Support.v4'" }, @@ -787,11 +890,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'CommunityToolkit.Maui'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -799,6 +898,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'CommunityToolkit.Maui'" }, @@ -824,11 +924,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -836,6 +932,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" }, @@ -856,25 +953,25 @@ { "tool": { "driver": { - "name": "Update TFM", + "name": "Update Project Properties for .NET MAUI Project", "semanticVersion": "", "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiAddProjectPropertiesStep", "fullDescription": { - "text": "Updated TFM to net7.0-android" - }, - "helpUri": "about:blank" + "text": "Updates the platform-specific project properties for a .NET MAUI project" + } } ] } }, "results": [ { - "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiAddProjectPropertiesStep", + "level": "note", "message": { - "text": "Complete: Updated TFM to net7.0-android" + "text": "Complete: Updated MauiAndroid project properties for .NET MAUI project EwDavidForms.Android.csproj" }, "locations": [ { @@ -900,9 +997,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Templates.TemplateInserterStep", "fullDescription": { - "text": "Added template file MainApplication.cs" - }, - "helpUri": "about:blank" + "text": "Add template files (for startup code paths, for example) based on template files described in: Program.cs, Startup.cs, appsettings.json, appsettings.Development.json, Program.vb, Startup.vb, appsettings.json, appsettings.Development.json, app.manifest, Properties\\launchSettings.json, Properties\\PublishProfiles\\win10-arm64.pubxml, Properties\\PublishProfiles\\win10-x64.pubxml, Properties\\PublishProfiles\\win10-x86.pubxml, App.xaml.cs, MainWindow.xaml.cs, MainWindow.xaml, UWPToWinAppSDKUpgradeHelpers.cs, MainApplication.cs, MauiProgram.cs" + } } ] } @@ -910,6 +1006,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Templates.TemplateInserterStep", + "level": "note", "message": { "text": "Complete: Added template file MainApplication.cs" }, diff --git a/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/ios/Upgraded/EwDavidForms/EwDavidForms/EwDavidForms.csproj b/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/ios/Upgraded/EwDavidForms/EwDavidForms/EwDavidForms.csproj index 5f3375e9b..ff34c3c6b 100644 --- a/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/ios/Upgraded/EwDavidForms/EwDavidForms/EwDavidForms.csproj +++ b/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/ios/Upgraded/EwDavidForms/EwDavidForms/EwDavidForms.csproj @@ -1,7 +1,7 @@ true - net6.0-android;net6.0-ios + net7.0-android;net7.0-ios Library enable diff --git a/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/ios/Upgraded/UpgradeReport.sarif b/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/ios/Upgraded/UpgradeReport.sarif index bf8d6a03c..48f643369 100644 --- a/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/ios/Upgraded/UpgradeReport.sarif +++ b/tests/tool/Integration.Tests/IntegrationScenarios/MauiSample/ios/Upgraded/UpgradeReport.sarif @@ -5,16 +5,49 @@ { "tool": { "driver": { - "name": "Remove package 'Microsoft.AppCenter.Analytics'", + "name": "Add TargetFramework for .NET MAUI Project", "semanticVersion": "", "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiPlatformTargetFrameworkUpgradeStep", "fullDescription": { - "text": "Remove package 'Microsoft.AppCenter.Analytics'" - }, - "helpUri": "about:blank" + "text": "Add Platform TargetFramework for XamarinForms projects being converted" + } + } + ] + } + }, + "results": [ + { + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiPlatformTargetFrameworkUpgradeStep", + "level": "note", + "message": { + "text": "Complete: Added TFMs to .NET MAUI project EwDavidForms.csproj" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///[ACTUAL_PROJECT_ROOT]/EwDavidForms/EwDavidForms/EwDavidForms.csproj" + }, + "region": {} + } + } + ] + } + ], + "columnKind": "utf16CodeUnits" + }, + { + "tool": { + "driver": { + "name": "Remove package 'Microsoft.AppCenter.Analytics'", + "semanticVersion": "", + "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", + "rules": [ + { + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -22,6 +55,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.AppCenter.Analytics'" }, @@ -47,11 +81,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Microsoft.AppCenter.Crashes'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -59,6 +89,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.AppCenter.Crashes'" }, @@ -84,11 +115,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.CommunityToolkit'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -96,6 +123,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.CommunityToolkit'" }, @@ -121,11 +149,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Forms'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -133,6 +157,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Forms'" }, @@ -158,11 +183,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Essentials'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -170,6 +191,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Essentials'" }, @@ -195,11 +217,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'CommunityToolkit.Maui'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -207,6 +225,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'CommunityToolkit.Maui'" }, @@ -232,11 +251,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -244,6 +259,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" }, @@ -261,6 +277,43 @@ ], "columnKind": "utf16CodeUnits" }, + { + "tool": { + "driver": { + "name": "Update Project Properties for .NET MAUI Project", + "semanticVersion": "", + "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", + "rules": [ + { + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiAddProjectPropertiesStep", + "fullDescription": { + "text": "Updates the platform-specific project properties for a .NET MAUI project" + } + } + ] + } + }, + "results": [ + { + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiAddProjectPropertiesStep", + "level": "note", + "message": { + "text": "Complete: Updated Maui project properties for .NET MAUI project EwDavidForms.csproj" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///[ACTUAL_PROJECT_ROOT]/EwDavidForms/EwDavidForms/EwDavidForms.csproj" + }, + "region": {} + } + } + ] + } + ], + "columnKind": "utf16CodeUnits" + }, { "tool": { "driver": { @@ -271,9 +324,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Templates.TemplateInserterStep", "fullDescription": { - "text": "Added template file MauiProgram.cs" - }, - "helpUri": "about:blank" + "text": "Add template files (for startup code paths, for example) based on template files described in: Program.cs, Startup.cs, appsettings.json, appsettings.Development.json, Program.vb, Startup.vb, appsettings.json, appsettings.Development.json, app.manifest, Properties\\launchSettings.json, Properties\\PublishProfiles\\win10-arm64.pubxml, Properties\\PublishProfiles\\win10-x64.pubxml, Properties\\PublishProfiles\\win10-x86.pubxml, App.xaml.cs, MainWindow.xaml.cs, MainWindow.xaml, UWPToWinAppSDKUpgradeHelpers.cs, MainApplication.cs, MauiProgram.cs" + } } ] } @@ -281,6 +333,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Templates.TemplateInserterStep", + "level": "note", "message": { "text": "Complete: Added template file MauiProgram.cs" }, @@ -298,6 +351,43 @@ ], "columnKind": "utf16CodeUnits" }, + { + "tool": { + "driver": { + "name": "Update XAML Namespaces", + "semanticVersion": "", + "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", + "rules": [ + { + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.XamlNamespaceUpgradeStep", + "fullDescription": { + "text": "Updates XAML namespaces to .NET MAUI" + } + } + ] + } + }, + "results": [ + { + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.XamlNamespaceUpgradeStep", + "level": "note", + "message": { + "text": "Complete: Updated XAML namespaces to .NET MAUI" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///[ACTUAL_PROJECT_ROOT]/EwDavidForms/EwDavidForms/EwDavidForms.csproj" + }, + "region": {} + } + } + ] + } + ], + "columnKind": "utf16CodeUnits" + }, { "tool": { "driver": { @@ -308,9 +398,8 @@ { "id": "UA0014", "fullDescription": { - "text": "Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\App.xaml.cs" - }, - "helpUri": "about:blank" + "text": "Update source files to automatically fix upgrade analyzer UA0014" + } } ] } @@ -318,6 +407,7 @@ "results": [ { "ruleId": "UA0014", + "level": "note", "message": { "text": "Complete: Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\App.xaml.cs" }, @@ -345,9 +435,8 @@ { "id": "UA0014", "fullDescription": { - "text": "Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\AssemblyInfo.cs" - }, - "helpUri": "about:blank" + "text": "Update source files to automatically fix upgrade analyzer UA0014" + } } ] } @@ -355,6 +444,7 @@ "results": [ { "ruleId": "UA0014", + "level": "note", "message": { "text": "Complete: Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\AssemblyInfo.cs" }, @@ -382,9 +472,8 @@ { "id": "UA0014", "fullDescription": { - "text": "Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\MainPage.xaml.cs" - }, - "helpUri": "about:blank" + "text": "Update source files to automatically fix upgrade analyzer UA0014" + } } ] } @@ -392,6 +481,7 @@ "results": [ { "ruleId": "UA0014", + "level": "note", "message": { "text": "Complete: Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\MainPage.xaml.cs" }, @@ -419,9 +509,8 @@ { "id": "UA0014", "fullDescription": { - "text": "Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\App.xaml.cs" - }, - "helpUri": "about:blank" + "text": "Update source files to automatically fix upgrade analyzer UA0014" + } } ] } @@ -429,6 +518,7 @@ "results": [ { "ruleId": "UA0014", + "level": "note", "message": { "text": "Complete: Diagnostic UA0014 fixed in [ACTUAL_PROJECT_ROOT]\\EwDavidForms\\EwDavidForms\\App.xaml.cs" }, @@ -456,9 +546,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", "fullDescription": { - "text": "Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." - }, - "helpUri": "about:blank" + "text": "Use the try-convert tool (, [VERSION]) to convert the project file to an SDK-style csproj" + } } ] } @@ -466,6 +555,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", + "level": "note", "message": { "text": "Complete: Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." }, @@ -486,16 +576,49 @@ { "tool": { "driver": { - "name": "Remove package 'Microsoft.AppCenter.Analytics'", + "name": "Add TargetFramework for .NET MAUI Project", "semanticVersion": "", "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiPlatformTargetFrameworkUpgradeStep", "fullDescription": { - "text": "Remove package 'Microsoft.AppCenter.Analytics'" - }, - "helpUri": "about:blank" + "text": "Add Platform TargetFramework for XamarinForms projects being converted" + } + } + ] + } + }, + "results": [ + { + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiPlatformTargetFrameworkUpgradeStep", + "level": "note", + "message": { + "text": "Complete: Added TFM net7.0-ios to .NET MAUI head project EwDavidForms.iOS.csproj" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///[ACTUAL_PROJECT_ROOT]/EwDavidForms/EwDavidForms.iOS/EwDavidForms.iOS.csproj" + }, + "region": {} + } + } + ] + } + ], + "columnKind": "utf16CodeUnits" + }, + { + "tool": { + "driver": { + "name": "Remove package 'Microsoft.AppCenter.Analytics'", + "semanticVersion": "", + "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", + "rules": [ + { + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -503,6 +626,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.AppCenter.Analytics'" }, @@ -528,11 +652,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Microsoft.AppCenter.Crashes'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -540,6 +660,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.AppCenter.Crashes'" }, @@ -565,11 +686,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.CommunityToolkit'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -577,6 +694,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.CommunityToolkit'" }, @@ -602,11 +720,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Forms'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -614,6 +728,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Forms'" }, @@ -639,11 +754,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Xamarin.Essentials'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -651,6 +762,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Xamarin.Essentials'" }, @@ -676,11 +788,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'CommunityToolkit.Maui'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -688,6 +796,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'CommunityToolkit.Maui'" }, @@ -713,11 +822,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -725,6 +830,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" }, @@ -745,25 +851,25 @@ { "tool": { "driver": { - "name": "Update TFM", + "name": "Update Project Properties for .NET MAUI Project", "semanticVersion": "", "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", + "id": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiAddProjectPropertiesStep", "fullDescription": { - "text": "Updated TFM to net7.0-ios" - }, - "helpUri": "about:blank" + "text": "Updates the platform-specific project properties for a .NET MAUI project" + } } ] } }, "results": [ { - "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", + "ruleId": "Microsoft.DotNet.UpgradeAssistant.Extensions.Maui.MauiAddProjectPropertiesStep", + "level": "note", "message": { - "text": "Complete: Updated TFM to net7.0-ios" + "text": "Complete: Updated MauiiOS project properties for .NET MAUI project EwDavidForms.iOS.csproj" }, "locations": [ { diff --git a/tests/tool/Integration.Tests/IntegrationScenarios/PCL/Upgraded/UpgradeReport.sarif b/tests/tool/Integration.Tests/IntegrationScenarios/PCL/Upgraded/UpgradeReport.sarif index df222b7fe..d40635979 100644 --- a/tests/tool/Integration.Tests/IntegrationScenarios/PCL/Upgraded/UpgradeReport.sarif +++ b/tests/tool/Integration.Tests/IntegrationScenarios/PCL/Upgraded/UpgradeReport.sarif @@ -12,9 +12,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", "fullDescription": { - "text": "Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." - }, - "helpUri": "about:blank" + "text": "Use the try-convert tool (, [VERSION]) to convert the project file to an SDK-style csproj" + } } ] } @@ -22,6 +21,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", + "level": "note", "message": { "text": "Complete: Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." }, @@ -47,11 +47,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Microsoft.Bcl'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -59,6 +55,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.Bcl'" }, @@ -84,11 +81,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Microsoft.Bcl.Build'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -96,6 +89,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.Bcl.Build'" }, @@ -121,11 +115,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Microsoft.Net.Http'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -133,6 +123,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.Net.Http'" }, @@ -158,11 +149,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.Net.Http'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -170,6 +157,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.Net.Http'" }, @@ -197,9 +185,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Newtonsoft.Json'" - }, - "helpUri": "about:blank" + "text": "Package Newtonsoft.Json, [VERSION] does not support the target(s) netstandard1.1 but a newer version (9.0.1) does. Package Newtonsoft.Json needs to be upgraded across major versions (8.0.1 -> 9.0.1) which may introduce breaking changes." + } } ] } @@ -207,6 +194,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Newtonsoft.Json'" }, @@ -234,9 +222,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Add package 'Newtonsoft.Json'" - }, - "helpUri": "about:blank" + "text": "Package Newtonsoft.Json, [VERSION] does not support the target(s) netstandard1.1 but a newer version (9.0.1) does. Package Newtonsoft.Json needs to be upgraded across major versions (8.0.1 -> 9.0.1) which may introduce breaking changes." + } } ] } @@ -244,6 +231,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Newtonsoft.Json'" }, @@ -269,11 +257,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -281,6 +265,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" }, diff --git a/tests/tool/Integration.Tests/IntegrationScenarios/WCFSample/Upgraded/UpgradeReport.sarif b/tests/tool/Integration.Tests/IntegrationScenarios/WCFSample/Upgraded/UpgradeReport.sarif index 27a1f08b0..1fdc322c5 100644 --- a/tests/tool/Integration.Tests/IntegrationScenarios/WCFSample/Upgraded/UpgradeReport.sarif +++ b/tests/tool/Integration.Tests/IntegrationScenarios/WCFSample/Upgraded/UpgradeReport.sarif @@ -12,9 +12,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", "fullDescription": { - "text": "Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." - }, - "helpUri": "about:blank" + "text": "Use the try-convert tool (, [VERSION]) to convert the project file to an SDK-style csproj" + } } ] } @@ -22,6 +21,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", + "level": "note", "message": { "text": "Complete: Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." }, @@ -47,11 +47,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove reference 'System.ServiceModel'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -59,6 +55,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove reference 'System.ServiceModel'" }, @@ -84,11 +81,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -96,6 +89,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" }, @@ -123,9 +117,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", "fullDescription": { - "text": "Updated TFM to net7.0" - }, - "helpUri": "about:blank" + "text": "Update TFM for current project" + } } ] } @@ -133,6 +126,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", + "level": "note", "message": { "text": "Complete: Updated TFM to net7.0" }, diff --git a/tests/tool/Integration.Tests/IntegrationScenarios/WpfSample/csharp/Upgraded/UpgradeReport.sarif b/tests/tool/Integration.Tests/IntegrationScenarios/WpfSample/csharp/Upgraded/UpgradeReport.sarif index 1902499ed..ee12e3ec6 100644 --- a/tests/tool/Integration.Tests/IntegrationScenarios/WpfSample/csharp/Upgraded/UpgradeReport.sarif +++ b/tests/tool/Integration.Tests/IntegrationScenarios/WpfSample/csharp/Upgraded/UpgradeReport.sarif @@ -12,9 +12,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", "fullDescription": { - "text": "Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." - }, - "helpUri": "about:blank" + "text": "Use the try-convert tool (, [VERSION]) to convert the project file to an SDK-style csproj" + } } ] } @@ -22,6 +21,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", + "level": "note", "message": { "text": "Complete: Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." }, @@ -47,11 +47,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove reference 'System.ServiceModel'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -59,6 +55,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove reference 'System.ServiceModel'" }, @@ -84,11 +81,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Primitives'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -96,6 +89,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Primitives'" }, @@ -121,11 +115,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Http'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -133,6 +123,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Http'" }, @@ -158,11 +149,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Duplex'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -170,6 +157,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Duplex'" }, @@ -195,11 +183,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.NetTcp'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -207,6 +191,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.NetTcp'" }, @@ -232,11 +217,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Security'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -244,6 +225,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Security'" }, @@ -269,11 +251,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Federation'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -281,6 +259,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Federation'" }, @@ -306,11 +285,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -318,6 +293,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" }, @@ -345,9 +321,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.ServiceModel.Primitives'" - }, - "helpUri": "about:blank" + "text": "Package System.ServiceModel.Primitives needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -355,6 +330,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.ServiceModel.Primitives'" }, @@ -382,9 +358,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.ServiceModel.Http'" - }, - "helpUri": "about:blank" + "text": "Package System.ServiceModel.Http needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -392,6 +367,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.ServiceModel.Http'" }, @@ -419,9 +395,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.ServiceModel.Security'" - }, - "helpUri": "about:blank" + "text": "Package System.ServiceModel.Security needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -429,6 +404,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.ServiceModel.Security'" }, @@ -456,9 +432,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", "fullDescription": { - "text": "Updated TFM to netstandard2.0" - }, - "helpUri": "about:blank" + "text": "Update TFM for current project" + } } ] } @@ -466,6 +441,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", + "level": "note", "message": { "text": "Complete: Updated TFM to netstandard2.0" }, @@ -493,9 +469,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", "fullDescription": { - "text": "Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." - }, - "helpUri": "about:blank" + "text": "Use the try-convert tool (, [VERSION]) to convert the project file to an SDK-style csproj" + } } ] } @@ -503,6 +478,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", + "level": "note", "message": { "text": "Complete: Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." }, @@ -528,11 +504,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove reference 'System.Configuration'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -540,6 +512,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove reference 'System.Configuration'" }, @@ -565,11 +538,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove reference 'System.Net.Http.WebRequest'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -577,6 +546,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove reference 'System.Net.Http.WebRequest'" }, @@ -602,11 +572,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove reference 'System.ServiceModel'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -614,6 +580,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.Reference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove reference 'System.ServiceModel'" }, @@ -639,11 +606,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Remove package 'Microsoft.Net.Http'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -651,6 +614,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.Net.Http'" }, @@ -676,11 +640,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.Net.Http'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -688,6 +648,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.Net.Http'" }, @@ -713,11 +674,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.Configuration.ConfigurationManager'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -725,6 +682,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.Configuration.ConfigurationManager'" }, @@ -750,11 +708,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Primitives'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -762,6 +716,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Primitives'" }, @@ -787,11 +742,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Http'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -799,6 +750,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Http'" }, @@ -824,11 +776,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Duplex'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -836,6 +784,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Duplex'" }, @@ -861,11 +810,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.NetTcp'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -873,6 +818,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.NetTcp'" }, @@ -898,11 +844,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Security'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -910,6 +852,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Security'" }, @@ -935,11 +878,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'System.ServiceModel.Federation'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -947,6 +886,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'System.ServiceModel.Federation'" }, @@ -972,11 +912,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -984,6 +920,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" }, @@ -1011,9 +948,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Castle.Core'" - }, - "helpUri": "about:blank" + "text": "Package Castle.Core needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1021,6 +957,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Castle.Core'" }, @@ -1048,9 +985,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'ControlzEx'" - }, - "helpUri": "about:blank" + "text": "Package ControlzEx needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1058,6 +994,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'ControlzEx'" }, @@ -1085,9 +1022,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Microsoft.Bcl'" - }, - "helpUri": "about:blank" + "text": "Package Microsoft.Bcl needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1095,6 +1031,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.Bcl'" }, @@ -1122,9 +1059,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Microsoft.Bcl.Async'" - }, - "helpUri": "about:blank" + "text": "Package Microsoft.Bcl.Async needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1132,6 +1068,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.Bcl.Async'" }, @@ -1159,9 +1096,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Microsoft.Bcl.Build'" - }, - "helpUri": "about:blank" + "text": "Package Microsoft.Bcl.Build needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1169,6 +1105,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.Bcl.Build'" }, @@ -1196,9 +1133,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Microsoft.CodeQuality.Analyzers'" - }, - "helpUri": "about:blank" + "text": "Package Microsoft.CodeQuality.Analyzers needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1206,6 +1142,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.CodeQuality.Analyzers'" }, @@ -1233,9 +1170,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Microsoft.NetCore.Analyzers'" - }, - "helpUri": "about:blank" + "text": "Package Microsoft.NetCore.Analyzers needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1243,6 +1179,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.NetCore.Analyzers'" }, @@ -1270,9 +1207,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Microsoft.NetFramework.Analyzers'" - }, - "helpUri": "about:blank" + "text": "Package Microsoft.NetFramework.Analyzers needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1280,6 +1216,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.NetFramework.Analyzers'" }, @@ -1307,9 +1244,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Microsoft.Rest.ClientRuntime'" - }, - "helpUri": "about:blank" + "text": "Package Microsoft.Rest.ClientRuntime needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1317,6 +1253,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Microsoft.Rest.ClientRuntime'" }, @@ -1344,9 +1281,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.Security.Cryptography.X509Certificates'" - }, - "helpUri": "about:blank" + "text": "Package System.Security.Cryptography.X509Certificates needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1354,6 +1290,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.Security.Cryptography.X509Certificates'" }, @@ -1381,9 +1318,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Text.Analyzers'" - }, - "helpUri": "about:blank" + "text": "Package Text.Analyzers needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1391,6 +1327,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Text.Analyzers'" }, @@ -1418,9 +1355,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.ServiceModel.Primitives'" - }, - "helpUri": "about:blank" + "text": "Package System.ServiceModel.Primitives needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1428,6 +1364,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.ServiceModel.Primitives'" }, @@ -1455,9 +1392,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.ServiceModel.Http'" - }, - "helpUri": "about:blank" + "text": "Package System.ServiceModel.Http needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1465,6 +1401,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.ServiceModel.Http'" }, @@ -1492,9 +1429,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.ServiceModel.Security'" - }, - "helpUri": "about:blank" + "text": "Package System.ServiceModel.Security needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1502,6 +1438,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.ServiceModel.Security'" }, @@ -1529,9 +1466,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", "fullDescription": { - "text": "Updated TFM to net7.0-windows" - }, - "helpUri": "about:blank" + "text": "Update TFM for current project" + } } ] } @@ -1539,6 +1475,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", + "level": "note", "message": { "text": "Complete: Updated TFM to net7.0-windows" }, @@ -1566,9 +1503,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Hyak.Common'" - }, - "helpUri": "about:blank" + "text": "Package Hyak.Common, [VERSION] does not support the target(s) net7.0-windows but a newer version (1.2.2) does. Package Hyak.Common needs to be upgraded from 1.0.2 to 1.2.2." + } } ] } @@ -1576,6 +1512,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Hyak.Common'" }, @@ -1603,9 +1540,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'MahApps.Metro'" - }, - "helpUri": "about:blank" + "text": "Package MahApps.Metro, [VERSION] does not support the target(s) net7.0-windows but a newer version (2.4.4) does. Package MahApps.Metro needs to be upgraded across major versions (1.6.5 -> 2.4.4) which may introduce breaking changes." + } } ] } @@ -1613,6 +1549,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'MahApps.Metro'" }, @@ -1640,9 +1577,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Newtonsoft.Json'" - }, - "helpUri": "about:blank" + "text": "Package Newtonsoft.Json, [VERSION] does not support the target(s) net7.0-windows but a newer version (9.0.1) does. Package Newtonsoft.Json needs to be upgraded across major versions (7.0.1 -> 9.0.1) which may introduce breaking changes." + } } ] } @@ -1650,6 +1586,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Newtonsoft.Json'" }, @@ -1677,9 +1614,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Nito.AsyncEx'" - }, - "helpUri": "about:blank" + "text": "Package Nito.AsyncEx, [VERSION] does not support the target(s) net7.0-windows but a newer version (5.1.0) does. Package Nito.AsyncEx needs to be upgraded across major versions (4.0.1 -> 5.1.0) which may introduce breaking changes." + } } ] } @@ -1687,6 +1623,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Nito.AsyncEx'" }, @@ -1714,9 +1651,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Add package 'Hyak.Common'" - }, - "helpUri": "about:blank" + "text": "Package Hyak.Common, [VERSION] does not support the target(s) net7.0-windows but a newer version (1.2.2) does. Package Hyak.Common needs to be upgraded from 1.0.2 to 1.2.2." + } } ] } @@ -1724,6 +1660,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Hyak.Common'" }, @@ -1751,9 +1688,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Add package 'MahApps.Metro'" - }, - "helpUri": "about:blank" + "text": "Package MahApps.Metro, [VERSION] does not support the target(s) net7.0-windows but a newer version (2.4.4) does. Package MahApps.Metro needs to be upgraded across major versions (1.6.5 -> 2.4.4) which may introduce breaking changes." + } } ] } @@ -1761,6 +1697,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'MahApps.Metro'" }, @@ -1788,9 +1725,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Add package 'Newtonsoft.Json'" - }, - "helpUri": "about:blank" + "text": "Package Newtonsoft.Json, [VERSION] does not support the target(s) net7.0-windows but a newer version (9.0.1) does. Package Newtonsoft.Json needs to be upgraded across major versions (7.0.1 -> 9.0.1) which may introduce breaking changes." + } } ] } @@ -1798,6 +1734,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Newtonsoft.Json'" }, @@ -1825,9 +1762,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Add package 'Nito.AsyncEx'" - }, - "helpUri": "about:blank" + "text": "Package Nito.AsyncEx, [VERSION] does not support the target(s) net7.0-windows but a newer version (5.1.0) does. Package Nito.AsyncEx needs to be upgraded across major versions (4.0.1 -> 5.1.0) which may introduce breaking changes." + } } ] } @@ -1835,6 +1771,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Nito.AsyncEx'" }, @@ -1862,9 +1799,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Add package 'Microsoft.Windows.Compatibility'" - }, - "helpUri": "about:blank" + "text": "Adding Microsoft.Windows.Compatibility 5.0.2 helps with speeding up the upgrade process for Windows-based APIs" + } } ] } @@ -1872,6 +1808,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.Windows.Compatibility'" }, @@ -1899,9 +1836,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.Data.DataSetExtensions'" - }, - "helpUri": "about:blank" + "text": "Package System.Data.DataSetExtensions needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1909,6 +1845,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.Data.DataSetExtensions'" }, @@ -1936,9 +1873,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.Configuration.ConfigurationManager'" - }, - "helpUri": "about:blank" + "text": "Package System.Configuration.ConfigurationManager needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1946,6 +1882,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.Configuration.ConfigurationManager'" }, @@ -1973,9 +1910,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'Newtonsoft.Json'" - }, - "helpUri": "about:blank" + "text": "Package Newtonsoft.Json needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -1983,6 +1919,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'Newtonsoft.Json'" }, @@ -2012,8 +1949,7 @@ "name": "Microsoft.DotNet.UpgradeAssistant.Extensions.Windows.WinformsDefaultFontUpdater", "fullDescription": { "text": "Default Font API Alert" - }, - "helpUri": "about:blank" + } } ] } @@ -2021,6 +1957,7 @@ "results": [ { "ruleId": "UA209", + "level": "note", "message": { "text": "Success: Default font in Windows Forms has been changed from Microsoft Sans Serif to Seg Segoe UI, in order to change the default font use the API - Application.SetDefaultFont(Font font). For more details see here - https://devblogs.microsoft.com/dotnet/whats-new-in-windows-forms-in-net-6-0-preview-5/#application-wide-default-font." }, diff --git a/tests/tool/Integration.Tests/IntegrationScenarios/WpfSample/vb/Upgraded/UpgradeReport.sarif b/tests/tool/Integration.Tests/IntegrationScenarios/WpfSample/vb/Upgraded/UpgradeReport.sarif index 77541c404..9e9c39dbe 100644 --- a/tests/tool/Integration.Tests/IntegrationScenarios/WpfSample/vb/Upgraded/UpgradeReport.sarif +++ b/tests/tool/Integration.Tests/IntegrationScenarios/WpfSample/vb/Upgraded/UpgradeReport.sarif @@ -12,9 +12,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", "fullDescription": { - "text": "Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." - }, - "helpUri": "about:blank" + "text": "Use the try-convert tool (, [VERSION]) to convert the project file to an SDK-style csproj" + } } ] } @@ -22,6 +21,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.TryConvertProjectConverterStep", + "level": "note", "message": { "text": "Complete: Project file converted successfully! The project may require additional changes to build successfully against the new .NET target." }, @@ -47,11 +47,7 @@ "informationUri": "https://github.com/dotnet/upgrade-assistant#usage", "rules": [ { - "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", - "fullDescription": { - "text": "Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" - }, - "helpUri": "about:blank" + "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]" } ] } @@ -59,6 +55,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers'" }, @@ -86,9 +83,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", "fullDescription": { - "text": "Updated TFM to net7.0-windows" - }, - "helpUri": "about:blank" + "text": "Update TFM for current project" + } } ] } @@ -96,6 +92,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.ProjectFormat.SetTFMStep", + "level": "note", "message": { "text": "Complete: Updated TFM to net7.0-windows" }, @@ -123,9 +120,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Add package 'Microsoft.Windows.Compatibility'" - }, - "helpUri": "about:blank" + "text": "Adding Microsoft.Windows.Compatibility 5.0.2 helps with speeding up the upgrade process for Windows-based APIs" + } } ] } @@ -133,6 +129,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Add package 'Microsoft.Windows.Compatibility'" }, @@ -160,9 +157,8 @@ { "id": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", "fullDescription": { - "text": "Remove package 'System.Data.DataSetExtensions'" - }, - "helpUri": "about:blank" + "text": "Package System.Data.DataSetExtensions needs to be removed as its a transitive dependency that is not required" + } } ] } @@ -170,6 +166,7 @@ "results": [ { "ruleId": "Microsoft.DotNet.UpgradeAssistant.Steps.Packages.PackageUpdaterStep+PackageManipulationStep`1[[Microsoft.DotNet.UpgradeAssistant.NuGetReference, Microsoft.DotNet.UpgradeAssistant.Abstractions, [VERSION], Culture=neutral, PublicKeyToken=31bf3856ad364e35]]", + "level": "note", "message": { "text": "Complete: Remove package 'System.Data.DataSetExtensions'" }, diff --git a/tests/tool/Integration.Tests/UpgradeRunner.cs b/tests/tool/Integration.Tests/UpgradeRunner.cs index c4c228a30..1adb5e8ff 100644 --- a/tests/tool/Integration.Tests/UpgradeRunner.cs +++ b/tests/tool/Integration.Tests/UpgradeRunner.cs @@ -40,7 +40,7 @@ public async Task UpgradeAsync(string inputPath, string entrypoint, ITestOu var project = new FileInfo(inputPath); using var cts = new CancellationTokenSource(maxDuration); - var options = new TestOptions(project); + var options = new IntegrationTestOptions(project); var status = await Host.CreateDefaultBuilder() .UseEnvironment(Environments.Development) .UseUpgradeAssistant(options) @@ -50,6 +50,7 @@ public async Task UpgradeAsync(string inputPath, string entrypoint, ITestOu services.AddNonInteractive(options => options.Wait = TimeSpan.Zero, true); services.AddKnownExtensionOptions(new() { Entrypoints = new[] { entrypoint }, SkipBackup = true }); + services.AddOptions().Configure(options => options.IsRunningTest = true); }) .ConfigureContainer(builder => { @@ -75,9 +76,9 @@ public async Task UpgradeAsync(string inputPath, string entrypoint, ITestOu return status; } - private class TestOptions : UpgradeAssistantCommandOptions + private class IntegrationTestOptions : UpgradeAssistantCommandOptions { - public TestOptions(FileInfo project) + public IntegrationTestOptions(FileInfo project) { this.Project = project; this.Verbose = true;