From 800e369ab245d607bd1d4c454e9246c9812e42da Mon Sep 17 00:00:00 2001
From: Doug Bunting <6431421+dougbu@users.noreply.github.com>
Date: Mon, 14 Sep 2020 00:35:08 -0700
Subject: [PATCH] Pin PackageOverrides.txt Extensions versions at Major.Minor.0
in servicing - set the package version of Extensions assemblies using
NETCore.App version - ignore Microsoft.Extensions.Internal.Transport
package version - transport package has a non-stable version and isn't
shipped - just got lucky this worked before versions stabilize - update
test expectations when checking PackageOverrides.txt - use NuGet.Versioning
to make this easier
---
eng/Dependencies.props | 1 +
eng/Versions.props | 1 +
.../src/Microsoft.AspNetCore.App.Ref.csproj | 24 ++++++++++-----
src/Framework/Directory.Build.props | 2 +-
.../Microsoft.AspNetCore.App.UnitTests.csproj | 1 +
src/Framework/test/TargetingPackTests.cs | 30 ++++++++++++++++---
6 files changed, 47 insertions(+), 12 deletions(-)
diff --git a/eng/Dependencies.props b/eng/Dependencies.props
index d7d3a004aca7..62a7ac2e0f82 100644
--- a/eng/Dependencies.props
+++ b/eng/Dependencies.props
@@ -169,6 +169,7 @@ and are generated based on the last package release.
+
diff --git a/eng/Versions.props b/eng/Versions.props
index 4166efc1eb64..9ab88a2fb1a9 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -205,6 +205,7 @@
11.1.0
1.4.0
6.7.1
+ 5.7.0
2.1.1
2.2.0
diff --git a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj
index 26b11b060369..184778716af9 100644
--- a/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj
+++ b/src/Framework/App.Ref/src/Microsoft.AspNetCore.App.Ref.csproj
@@ -155,14 +155,24 @@ This package is an internal implementation of the .NET Core SDK and is not meant
DependsOnTargets="_ResolveTargetingPackContent"
Inputs="$(MSBuildAllProjects)"
Outputs="$(TargetDir)$(PackageConflictManifestFileName)">
+
+ <_PinnedNETCoreAppRuntimeVersion>$(MicrosoftNETCoreAppRuntimeVersion)
+ <_PinnedNETCoreAppRuntimeVersion
+ Condition=" '$(IsServicingBuild)' == 'true' ">$(_PinnedNETCoreAppRuntimeVersion.Split('.')[0]).$(_PinnedNETCoreAppRuntimeVersion.Split('.')[1]).0
+
-
- <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(NuGetPackageId)|%(NuGetPackageVersion)')" Condition="!Exists('$(RuntimeExtensionsReferenceDirectory)%(AspNetCoreReferenceAssemblyPath.NuGetPackageId).dll') AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.Extensions.Internal.Transport' AND '%(AspNetCoreReferenceAssemblyPath.NuGetSourceType)' == 'Package' " />
-
-
- <_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(MicrosoftExtensionsInternalTransportPackageVersion)')" />
-
- <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(FileName)|$(ReferencePackSharedFxVersion)')" Condition=" '%(AspNetCoreReferenceAssemblyPath.ReferenceSourceTarget)' == 'ProjectReference' " />
+
+ <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(NuGetPackageId)|%(NuGetPackageVersion)')"
+ Condition="!Exists('$(RuntimeExtensionsReferenceDirectory)%(AspNetCoreReferenceAssemblyPath.NuGetPackageId).dll') AND
+ '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.NETCore.App' AND
+ '%(AspNetCoreReferenceAssemblyPath.NuGetPackageId)' != 'Microsoft.Extensions.Internal.Transport' AND
+ '%(AspNetCoreReferenceAssemblyPath.NuGetSourceType)' == 'Package' " />
+
+
+ <_AspNetCoreAppPackageOverrides Include="@(_SelectedExtensionsRefAssemblies->'%(FileName)|$(_PinnedNETCoreAppRuntimeVersion)')" />
+
+ <_AspNetCoreAppPackageOverrides Include="@(AspNetCoreReferenceAssemblyPath->'%(FileName)|$(ReferencePackSharedFxVersion)')"
+ Condition=" '%(AspNetCoreReferenceAssemblyPath.ReferenceSourceTarget)' == 'ProjectReference' " />
PlatformManifest.txt
$(ArtifactsObjDir)$(PlatformManifestFileName)
-
+
$(AspNetCoreMajorVersion).$(AspNetCoreMinorVersion).0
$(ReferencePackSharedFxVersion)-$(VersionSuffix)
diff --git a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
index a225c92060dc..3a594e0f301f 100644
--- a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
+++ b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
@@ -48,6 +48,7 @@
+
diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs
index d39f6dbbe485..928fd395b049 100644
--- a/src/Framework/test/TargetingPackTests.cs
+++ b/src/Framework/test/TargetingPackTests.cs
@@ -10,6 +10,7 @@
using System.Reflection.PortableExecutable;
using System.Runtime.CompilerServices;
using System.Xml.Linq;
+using NuGet.Versioning;
using Xunit;
using Xunit.Abstractions;
@@ -143,25 +144,46 @@ public void PackageOverridesContainsCorrectEntries()
Assert.Equal(packageOverrideFileLines.Length, runtimeDependencies.Count + aspnetcoreDependencies.Count);
- foreach (var entry in packageOverrideFileLines)
+ // PackageOverrides versions should remain at Major.Minor.0 while servicing.
+ var netCoreAppPackageVersion = TestData.GetMicrosoftNETCoreAppPackageVersion();
+ Assert.True(
+ NuGetVersion.TryParse(netCoreAppPackageVersion, out var parsedVersion),
+ "MicrosoftNETCoreAppPackageVersion must be convertable to a NuGetVersion.");
+ if (parsedVersion.Patch != 0 && !parsedVersion.IsPrerelease)
+ {
+ netCoreAppPackageVersion = $"{parsedVersion.Major}.{parsedVersion.Minor}.0";
+ }
+
+ var aspNetCoreAppPackageVersion = TestData.GetReferencePackSharedFxVersion();
+ Assert.True(
+ NuGetVersion.TryParse(aspNetCoreAppPackageVersion, out parsedVersion),
+ "ReferencePackSharedFxVersion must be convertable to a NuGetVersion.");
+ if (parsedVersion.Patch != 0 && !parsedVersion.IsPrerelease)
+ {
+ aspNetCoreAppPackageVersion = $"{parsedVersion.Major}.{parsedVersion.Minor}.0";
+ }
+
+ Assert.All(packageOverrideFileLines, entry =>
{
var packageOverrideParts = entry.Split("|");
+ Assert.Equal(2, packageOverrideParts.Length);
+
var packageName = packageOverrideParts[0];
var packageVersion = packageOverrideParts[1];
if (runtimeDependencies.Contains(packageName))
{
- Assert.Equal(TestData.GetMicrosoftNETCoreAppPackageVersion(), packageVersion);
+ Assert.Equal(netCoreAppPackageVersion, packageVersion);
}
else if (aspnetcoreDependencies.Contains(packageName))
{
- Assert.Equal(TestData.GetReferencePackSharedFxVersion(), packageVersion);
+ Assert.Equal(aspNetCoreAppPackageVersion, packageVersion);
}
else
{
Assert.True(false, $"{packageName} is not a recognized aspNetCore or runtime dependency");
}
- }
+ });
}
[Fact]