Skip to content

Commit 61b9c29

Browse files
author
Nate McMaster
committed
Generate PlatformManifest and package conflict overrides for Microsoft.AspNetCore.App
This generates additional metadata for the .NET Core SDK to resolve conflicts between Microsoft.AspNetCore.App and PackageReferences which contain the same assemblies.
1 parent 0e12274 commit 61b9c29

15 files changed

+253
-40
lines changed

.azure/pipelines/fast-pr-validation.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1+
# Don't run CI for this config
2+
trigger: none
13

2-
trigger:
3-
- master
4-
- release/*
4+
# Run PR validation on all branches
5+
pr:
6+
branches:
7+
include:
8+
- '*'
59

610
jobs:
711
- template: jobs/default-build.yml

build/dependencies.props

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<!-- MicrosoftNETCoreApp30PackageVersion is assigned at the bottom so it can automatically pick up MicrosoftNETCoreAppPackageVersion in an orchestrated build. -->
77
<MicrosoftNETCoreAppPackageVersion>3.0.0-preview1-26907-05</MicrosoftNETCoreAppPackageVersion>
88
<MicrosoftNETCoreDotNetAppHostPackageVersion>3.0.0-preview1-26907-05</MicrosoftNETCoreDotNetAppHostPackageVersion>
9+
<MicrosoftDotNetPlatformAbstractionsPackageVersion>3.0.0-preview1-26907-05</MicrosoftDotNetPlatformAbstractionsPackageVersion>
910
<MicrosoftWin32RegistryPackageVersion>4.6.0-preview1-26907-04</MicrosoftWin32RegistryPackageVersion>
1011
<SystemBuffersPackageVersion>4.6.0-preview1-26907-04</SystemBuffersPackageVersion>
1112
<SystemCollectionsImmutablePackageVersion>1.6.0-preview1-26907-04</SystemCollectionsImmutablePackageVersion>
@@ -21,10 +22,12 @@
2122
<SystemReflectionMetadataPackageVersion>1.7.0-preview1-26907-04</SystemReflectionMetadataPackageVersion>
2223
<SystemRuntimeCompilerServicesUnsafePackageVersion>4.6.0-preview1-26907-04</SystemRuntimeCompilerServicesUnsafePackageVersion>
2324
<SystemSecurityCryptographyCngPackageVersion>4.6.0-preview1-26907-04</SystemSecurityCryptographyCngPackageVersion>
25+
<SystemSecurityCryptographyPkcsPackageVersion>4.6.0-preview1-26907-04</SystemSecurityCryptographyPkcsPackageVersion>
2426
<SystemSecurityCryptographyXmlPackageVersion>4.6.0-preview1-26907-04</SystemSecurityCryptographyXmlPackageVersion>
2527
<SystemSecurityPermissionsPackageVersion>4.6.0-preview1-26907-04</SystemSecurityPermissionsPackageVersion>
2628
<SystemSecurityPrincipalWindowsPackageVersion>4.6.0-preview1-26907-04</SystemSecurityPrincipalWindowsPackageVersion>
2729
<SystemServiceProcessServiceControllerPackageVersion>4.6.0-preview1-26907-04</SystemServiceProcessServiceControllerPackageVersion>
30+
<SystemTextEncodingCodePagesPackageVersion>4.6.0-preview1-26907-04</SystemTextEncodingCodePagesPackageVersion>
2831
<SystemTextEncodingsWebPackageVersion>4.6.0-preview1-26907-04</SystemTextEncodingsWebPackageVersion>
2932
<SystemThreadingChannelsPackageVersion>4.6.0-preview1-26907-04</SystemThreadingChannelsPackageVersion>
3033
<SystemThreadingTasksDataflowPackageVersion>4.10.0-preview1-26907-04</SystemThreadingTasksDataflowPackageVersion>
@@ -170,8 +173,12 @@
170173
<MicrosoftDotNetProjectModelPackageVersion>1.0.0-rc3-003121</MicrosoftDotNetProjectModelPackageVersion>
171174
<MicrosoftExtensionsPlatformAbstractionsPackageVersion>1.1.0</MicrosoftExtensionsPlatformAbstractionsPackageVersion>
172175
<MicrosoftIdentityModelClientsActiveDirectoryPackageVersion>3.19.8</MicrosoftIdentityModelClientsActiveDirectoryPackageVersion>
176+
<MicrosoftIdentityModelJsonWebTokensPackageVersion>5.3.0</MicrosoftIdentityModelJsonWebTokensPackageVersion>
177+
<MicrosoftIdentityModelLoggingPackageVersion>5.3.0</MicrosoftIdentityModelLoggingPackageVersion>
173178
<MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>5.3.0</MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion>
179+
<MicrosoftIdentityModelProtocolsPackageVersion>5.3.0</MicrosoftIdentityModelProtocolsPackageVersion>
174180
<MicrosoftIdentityModelProtocolsWsFederationPackageVersion>5.3.0</MicrosoftIdentityModelProtocolsWsFederationPackageVersion>
181+
<MicrosoftIdentityModelTokensPackageVersion>5.3.0</MicrosoftIdentityModelTokensPackageVersion>
175182
<MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>2.1.1</MicrosoftInternalAspNetCoreH2SpecAllPackageVersion>
176183
<MicrosoftNETCoreApp10PackageVersion>1.0.12</MicrosoftNETCoreApp10PackageVersion>
177184
<MicrosoftNETCoreApp11PackageVersion>1.1.9</MicrosoftNETCoreApp11PackageVersion>

build/external-dependencies.props

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,12 @@
136136
<ExternalDependency Include="Microsoft.DiaSymReader.Native" Version="$(MicrosoftDiaSymReaderNativePackageVersion)" />
137137
<ExternalDependency Include="Microsoft.Extensions.DependencyModel" Version="$(MicrosoftExtensionsDependencyModelPackageVersion)" />
138138
<ExternalDependency Include="Microsoft.IdentityModel.Clients.ActiveDirectory" Version="$(MicrosoftIdentityModelClientsActiveDirectoryPackageVersion)" />
139+
<ExternalDependency Include="Microsoft.IdentityModel.JsonWebTokens" Version="$(MicrosoftIdentityModelJsonWebTokensPackageVersion)" />
140+
<ExternalDependency Include="Microsoft.IdentityModel.Logging" Version="$(MicrosoftIdentityModelLoggingPackageVersion)" />
139141
<ExternalDependency Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" Version="$(MicrosoftIdentityModelProtocolsOpenIdConnectPackageVersion)" />
140142
<ExternalDependency Include="Microsoft.IdentityModel.Protocols.WsFederation" Version="$(MicrosoftIdentityModelProtocolsWsFederationPackageVersion)" />
143+
<ExternalDependency Include="Microsoft.IdentityModel.Protocols" Version="$(MicrosoftIdentityModelProtocolsPackageVersion)" />
144+
<ExternalDependency Include="Microsoft.IdentityModel.Tokens" Version="$(MicrosoftIdentityModelTokensPackageVersion)" />
141145
<ExternalDependency Include="Microsoft.NET.Test.Sdk" Version="$(MicrosoftNETTestSdkPackageVersion)" />
142146

143147
<!-- Multiple versions of this package required to support all netcoreapp versions -->
@@ -154,6 +158,7 @@
154158
<ExternalDependency Include="Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreDotNetAppHost21PackageVersion)" VariableName="MicrosoftNETCoreDotNetAppHost21PackageVersion" />
155159
<ExternalDependency Include="Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreDotNetAppHost22PackageVersion)" VariableName="MicrosoftNETCoreDotNetAppHost22PackageVersion" />
156160
<ExternalDependency Include="Microsoft.NETCore.DotNetAppHost" Version="$(MicrosoftNETCoreDotNetAppHostPackageVersion)" />
161+
<ExternalDependency Include="Microsoft.DotNet.PlatformAbstractions" Version="$(MicrosoftDotNetPlatformAbstractionsPackageVersion)" />
157162

158163
<ExternalDependency Include="Microsoft.NETCore.Windows.ApiSets" Version="$(MicrosoftNETCoreWindowsApiSetsPackageVersion)" />
159164
<ExternalDependency Include="Microsoft.NETFramework.ReferenceAssemblies" Version="$(MicrosoftNETFrameworkReferenceAssembliesPackageVersion)" />
@@ -229,10 +234,12 @@
229234
<ExternalDependency Include="System.Runtime.CompilerServices.Unsafe" Version="$(SystemRuntimeCompilerServicesUnsafePackageVersion)" />
230235
<ExternalDependency Include="System.Runtime.InteropServices.RuntimeInformation" Version="$(SystemRuntimeInteropServicesRuntimeInformationPackageVersion)" />
231236
<ExternalDependency Include="System.Security.Cryptography.Cng" Version="$(SystemSecurityCryptographyCngPackageVersion)" />
237+
<ExternalDependency Include="System.Security.Cryptography.Pkcs" Version="$(SystemSecurityCryptographyPkcsPackageVersion)" />
232238
<ExternalDependency Include="System.Security.Cryptography.Xml" Version="$(SystemSecurityCryptographyXmlPackageVersion)" />
233239
<ExternalDependency Include="System.Security.Permissions" Version="$(SystemSecurityPermissionsPackageVersion)" />
234240
<ExternalDependency Include="System.Security.Principal.Windows" Version="$(SystemSecurityPrincipalWindowsPackageVersion)" />
235241
<ExternalDependency Include="System.ServiceProcess.ServiceController" Version="$(SystemServiceProcessServiceControllerPackageVersion)" />
242+
<ExternalDependency Include="System.Text.Encoding.CodePages" Version="$(SystemTextEncodingCodePagesPackageVersion)" />
236243
<ExternalDependency Include="System.Text.Encodings.Web" Version="$(SystemTextEncodingsWebPackageVersion)" />
237244
<ExternalDependency Include="System.Threading.Channels" Version="$(SystemThreadingChannelsPackageVersion)" />
238245
<ExternalDependency Include="System.Threading.Tasks.Dataflow" Version="$(SystemThreadingTasksDataflowPackageVersion)" />

build/tasks/ProcessSharedFrameworkDeps.cs renamed to build/tasks/GenerateSharedFrameworkMetadataFiles.cs

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
namespace RepoTasks
1616
{
17-
public class ProcessSharedFrameworkDeps : Task
17+
public class GenerateSharedFrameworkMetadataFiles : Task
1818
{
1919
[Required]
2020
public string AssetsFilePath { get; set; }
@@ -23,7 +23,7 @@ public class ProcessSharedFrameworkDeps : Task
2323
public string DepsFilePath { get; set; }
2424

2525
[Required]
26-
public string OutputPath { get; set; }
26+
public string DepsFileOutputPath { get; set; }
2727

2828
[Required]
2929
public string TargetFramework { get; set; }
@@ -37,6 +37,9 @@ public class ProcessSharedFrameworkDeps : Task
3737
[Required]
3838
public string BaseRuntimeIdentifier { get; set; }
3939

40+
[Required]
41+
public string PlatformManifestOutputPath { get; set; }
42+
4043
public override bool Execute()
4144
{
4245
ExecuteCore();
@@ -65,27 +68,38 @@ private void ExecuteCore()
6568
var runtimeFiles = new List<RuntimeFile>();
6669
var nativeFiles = new List<RuntimeFile>();
6770
var resourceAssemblies = new List<ResourceAssembly>();
71+
var platformManifest = new List<string>();
6872

6973
foreach (var library in context.RuntimeLibraries)
7074
{
7175
foreach (var file in library.RuntimeAssemblyGroups.SelectMany(g => g.RuntimeFiles))
7276
{
73-
var path = $"runtimes/{context.Target.Runtime}/lib/{TargetFramework}/{Path.GetFileName(file.Path)}";
77+
var fileName = Path.GetFileName(file.Path);
78+
var path = $"runtimes/{context.Target.Runtime}/lib/{TargetFramework}/{fileName}";
7479
runtimeFiles.Add(
7580
new RuntimeFile(
7681
path,
7782
file.AssemblyVersion,
7883
file.FileVersion));
84+
85+
platformManifest.Add($"{fileName}|{FrameworkName}|{file.AssemblyVersion}|{file.FileVersion}");
7986
}
8087

8188
foreach (var file in library.NativeLibraryGroups.SelectMany(g => g.RuntimeFiles))
8289
{
83-
var path = $"runtimes/{context.Target.Runtime}/native/{Path.GetFileName(file.Path)}";
90+
var fileName = Path.GetFileName(file.Path);
91+
var path = $"runtimes/{context.Target.Runtime}/native/{fileName}";
8492
nativeFiles.Add(
8593
new RuntimeFile(
8694
path,
8795
file.AssemblyVersion,
8896
file.FileVersion));
97+
98+
if (!Version.TryParse(file.FileVersion, out var fileVersion))
99+
{
100+
fileVersion = new Version(0, 0, 0, 0);
101+
}
102+
platformManifest.Add($"{fileName}|{FrameworkName}||{fileVersion}");
89103
}
90104

91105
resourceAssemblies.AddRange(
@@ -126,7 +140,12 @@ private void ExecuteCore()
126140
expandedGraph
127141
);
128142

129-
using (var depsStream = File.Create(OutputPath))
143+
Directory.CreateDirectory(Path.GetDirectoryName(PlatformManifestOutputPath));
144+
Directory.CreateDirectory(Path.GetDirectoryName(DepsFileOutputPath));
145+
146+
File.WriteAllLines(PlatformManifestOutputPath, platformManifest.OrderBy(n => n));
147+
148+
using (var depsStream = File.Create(DepsFileOutputPath))
130149
{
131150
new DependencyContextWriter().Write(context, depsStream);
132151
}

build/tasks/RepoTasks.tasks

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<UsingTask TaskName="RepoTasks.GetDocXmlFiles" AssemblyFile="$(_RepoTaskAssembly)" />
1111
<UsingTask TaskName="RepoTasks.JoinItems" AssemblyFile="$(_RepoTaskAssembly)" />
1212
<UsingTask TaskName="RepoTasks.OrderBy" AssemblyFile="$(_RepoTaskAssembly)" />
13-
<UsingTask TaskName="RepoTasks.ProcessSharedFrameworkDeps" AssemblyFile="$(_RepoTaskAssembly)" />
13+
<UsingTask TaskName="RepoTasks.GenerateSharedFrameworkMetadataFiles" AssemblyFile="$(_RepoTaskAssembly)" />
1414
<UsingTask TaskName="RepoTasks.PublishToAzureBlob" AssemblyFile="$(_RepoTaskAssembly)" />
1515

1616
<!-- tools from dotnet-buildtools -->

modules/HttpClientFactory

0 commit comments

Comments
 (0)