Update SDK to preview7 (#12682)
- react to SDK changes (Microsoft.NETCore.App.Ref assemblies grouping) - update `dotnet new -u` logic
This commit is contained in:
parent
e2d57e2806
commit
4debc9c455
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"sdk": {
|
||||
"version": "3.0.100-preview6-012264"
|
||||
"version": "3.0.100-preview7-012821"
|
||||
},
|
||||
"tools": {
|
||||
"dotnet": "3.0.100-preview6-012264",
|
||||
"dotnet": "3.0.100-preview7-012821",
|
||||
"runtimes": {
|
||||
"dotnet/x64": [
|
||||
"$(MicrosoftNETCoreAppRuntimeVersion)"
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
|
|||
Include="@(ReferencePathWithRefAssemblies)"
|
||||
Exclude="
|
||||
@(_SelectedExtensionsRefAssemblies);
|
||||
@(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'Microsoft.NETCore.App'));
|
||||
@(ReferencePathWithRefAssemblies->WithMetadataValue('NuGetPackageId', 'Microsoft.NETCore.App.Ref'));
|
||||
@(ReferencePathWithRefAssemblies->WithMetadataValue('ReferenceGrouping', 'Microsoft.NETCore.App'));" />
|
||||
|
||||
<AspNetCoreReferenceAssemblyPath
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
|
|
@ -30,10 +31,10 @@ namespace Templates.Test.Helpers
|
|||
"Microsoft.DotNet.Web.ProjectTemplates.2.1",
|
||||
"Microsoft.DotNet.Web.ProjectTemplates.2.2",
|
||||
"Microsoft.DotNet.Web.ProjectTemplates.3.0",
|
||||
"Microsoft.DotNet.Web.Spa.ProjectTemplates",
|
||||
"Microsoft.DotNet.Web.Spa.ProjectTemplates.2.1",
|
||||
"Microsoft.DotNet.Web.Spa.ProjectTemplates.2.2",
|
||||
"Microsoft.DotNet.Web.Spa.ProjectTemplates.3.0"
|
||||
"Microsoft.DotNet.Web.Spa.ProjectTemplates.3.0",
|
||||
"Microsoft.DotNet.Web.Spa.ProjectTemplates"
|
||||
};
|
||||
|
||||
public static string CustomHivePath { get; } = typeof(TemplatePackageInstaller)
|
||||
|
|
@ -85,13 +86,38 @@ namespace Templates.Test.Helpers
|
|||
|
||||
Assert.Equal(4, builtPackages.Length);
|
||||
|
||||
/*
|
||||
* The templates are indexed by path, for example:
|
||||
&USERPROFILE%\.templateengine\dotnetcli\v3.0.100-preview7-012821\packages\nunit3.dotnetnew.template.1.6.1.nupkg
|
||||
Templates:
|
||||
NUnit 3 Test Project (nunit) C#
|
||||
NUnit 3 Test Item (nunit-test) C#
|
||||
NUnit 3 Test Project (nunit) F#
|
||||
NUnit 3 Test Item (nunit-test) F#
|
||||
NUnit 3 Test Project (nunit) VB
|
||||
NUnit 3 Test Item (nunit-test) VB
|
||||
Uninstall Command:
|
||||
dotnet new -u &USERPROFILE%\.templateengine\dotnetcli\v3.0.100-preview7-012821\packages\nunit3.dotnetnew.template.1.6.1.nupkg
|
||||
|
||||
* We don't want to construct this path so we'll rely on dotnet new --uninstall --help to construct the uninstall command.
|
||||
*/
|
||||
var proc = await RunDotNetNew(output, "--uninstall --help");
|
||||
var lines = proc.Output.Split(Environment.NewLine);
|
||||
|
||||
// Remove any previous or prebundled version of the template packages
|
||||
foreach (var packageName in _templatePackages)
|
||||
{
|
||||
// We don't need this command to succeed, because we'll verify next that
|
||||
// uninstallation had the desired effect. This command is expected to fail
|
||||
// in the case where the package wasn't previously installed.
|
||||
await RunDotNetNew(output, $"--uninstall {packageName}");
|
||||
// Depending on the ordering, there may be multiple matches:
|
||||
// Microsoft.DotNet.Web.Spa.ProjectTemplates.3.0.3.0.0-preview7.*.nupkg
|
||||
// Microsoft.DotNet.Web.Spa.ProjectTemplates.3.0.0-preview7.*.nupkg
|
||||
// Error on the side of caution and uninstall all of them
|
||||
foreach (var command in lines.Where(l => l.Contains("dotnet new") && l.Contains(packageName, StringComparison.OrdinalIgnoreCase)))
|
||||
{
|
||||
var uninstallCommand = command.TrimStart();
|
||||
Debug.Assert(uninstallCommand.StartsWith("dotnet new"));
|
||||
uninstallCommand = uninstallCommand.Substring("dotnet new".Length);
|
||||
await RunDotNetNew(output, uninstallCommand);
|
||||
}
|
||||
}
|
||||
|
||||
await VerifyCannotFindTemplateAsync(output, "web");
|
||||
|
|
@ -132,7 +158,7 @@ namespace Templates.Test.Helpers
|
|||
{
|
||||
var proc = await RunDotNetNew(output, $"\"{templateName}\"");
|
||||
|
||||
if (!proc.Error.Contains($"No templates matched the input template name: {templateName}."))
|
||||
if (!proc.Output.Contains("Couldn't find an installed template that matches the input, searching online for one that does..."))
|
||||
{
|
||||
throw new InvalidOperationException($"Failed to uninstall previous templates. The template '{templateName}' could still be found.");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue