From 4f68c8bb8680055ceb1b4b09b679e79c85774574 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 4 Apr 2023 15:07:14 -0700 Subject: [PATCH 1/3] Eight packable projects pin their assembly version for .NET Framework compatibility. The incremental package servicing infrastructure didn't check if the assembly version is pinned and changed it during servicing. As an example, System.Speech pins its assembly version to 4.0.0.0 but that version gets overwritten during servicing. I.e. for .NET 7 the version would then change to "7.0.0.$(ServicingVersion)" which is incorrect. Please find the full list of impacted assemblies below: - System.ComponentModel.Composition - System.DirectoryServices - System.DirectoryServices.AccountManagement - System.DirectoryServices.Protocols - System.Management - System.Reflection.Context - System.Runtime.Caching - System.Speech For System.DirectoryServices.Protocols and System.Management we'll only pin the version for the .NETStandard assembly since those previously shipped the newer versions in servicing. --- eng/packaging.targets | 2 +- .../Directory.Build.props | 1 - .../Directory.Build.targets | 8 ++++++++ .../Directory.Build.props | 4 ---- .../Directory.Build.targets | 8 ++++++++ .../Directory.Build.props | 4 ---- .../Directory.Build.targets | 10 ++++++++++ .../System.DirectoryServices/Directory.Build.props | 4 ---- .../System.DirectoryServices/Directory.Build.targets | 8 ++++++++ src/libraries/System.Management/Directory.Build.props | 4 ---- .../System.Management/Directory.Build.targets | 10 ++++++++++ .../System.Reflection.Context/Directory.Build.props | 1 - .../System.Reflection.Context/Directory.Build.targets | 9 +++++++++ .../System.Runtime.Caching/Directory.Build.props | 4 ---- .../System.Runtime.Caching/Directory.Build.targets | 8 ++++++++ src/libraries/System.Speech/Directory.Build.props | 4 ---- src/libraries/System.Speech/Directory.Build.targets | 8 ++++++++ 17 files changed, 70 insertions(+), 27 deletions(-) create mode 100644 src/libraries/System.ComponentModel.Composition/Directory.Build.targets create mode 100644 src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.targets create mode 100644 src/libraries/System.DirectoryServices.Protocols/Directory.Build.targets create mode 100644 src/libraries/System.DirectoryServices/Directory.Build.targets create mode 100644 src/libraries/System.Management/Directory.Build.targets create mode 100644 src/libraries/System.Reflection.Context/Directory.Build.targets create mode 100644 src/libraries/System.Runtime.Caching/Directory.Build.targets create mode 100644 src/libraries/System.Speech/Directory.Build.targets diff --git a/eng/packaging.targets b/eng/packaging.targets index 138393cec402ab..77f0805b438f01 100644 --- a/eng/packaging.targets +++ b/eng/packaging.targets @@ -51,7 +51,7 @@ <_IsWindowsDesktopApp Condition="$(WindowsDesktopCoreAppLibrary.Contains('$(AssemblyName);'))">true <_IsAspNetCoreApp Condition="$(AspNetCoreAppLibrary.Contains('$(AssemblyName);'))">true <_AssemblyInTargetingPack Condition="('$(IsNETCoreAppSrc)' == 'true' or '$(IsNetCoreAppRef)' == 'true' or '$(_IsAspNetCoreApp)' == 'true' or '$(_IsWindowsDesktopApp)' == 'true') and '$(TargetFrameworkIdentifier)' != '.NETFramework'">true - + $(MajorVersion).$(MinorVersion).0.$(ServicingVersion) diff --git a/src/libraries/System.ComponentModel.Composition/Directory.Build.props b/src/libraries/System.ComponentModel.Composition/Directory.Build.props index 7b1204a4c7202c..798ccfd363e813 100644 --- a/src/libraries/System.ComponentModel.Composition/Directory.Build.props +++ b/src/libraries/System.ComponentModel.Composition/Directory.Build.props @@ -1,7 +1,6 @@  - 4.0.0.0 ECMA diff --git a/src/libraries/System.ComponentModel.Composition/Directory.Build.targets b/src/libraries/System.ComponentModel.Composition/Directory.Build.targets new file mode 100644 index 00000000000000..ab75d51e44c5ee --- /dev/null +++ b/src/libraries/System.ComponentModel.Composition/Directory.Build.targets @@ -0,0 +1,8 @@ + + + + + 4.0.0.0 + + diff --git a/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.props b/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.props index 4cf151da3064fc..de81d80c303d7d 100644 --- a/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.props +++ b/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.props @@ -1,10 +1,6 @@  - - 4.0.0.0 ECMA windows diff --git a/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.targets b/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.targets new file mode 100644 index 00000000000000..ab75d51e44c5ee --- /dev/null +++ b/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.targets @@ -0,0 +1,8 @@ + + + + + 4.0.0.0 + + diff --git a/src/libraries/System.DirectoryServices.Protocols/Directory.Build.props b/src/libraries/System.DirectoryServices.Protocols/Directory.Build.props index 525d9a0d12ab6f..831e8089e2459c 100644 --- a/src/libraries/System.DirectoryServices.Protocols/Directory.Build.props +++ b/src/libraries/System.DirectoryServices.Protocols/Directory.Build.props @@ -1,10 +1,6 @@  - - 4.0.0.0 Microsoft true browser;android;ios;tvos diff --git a/src/libraries/System.DirectoryServices.Protocols/Directory.Build.targets b/src/libraries/System.DirectoryServices.Protocols/Directory.Build.targets new file mode 100644 index 00000000000000..23d731313a4eea --- /dev/null +++ b/src/libraries/System.DirectoryServices.Protocols/Directory.Build.targets @@ -0,0 +1,10 @@ + + + + + 4.0.0.0 + + diff --git a/src/libraries/System.DirectoryServices/Directory.Build.props b/src/libraries/System.DirectoryServices/Directory.Build.props index 0740890146a71c..7b8070be7d21e6 100644 --- a/src/libraries/System.DirectoryServices/Directory.Build.props +++ b/src/libraries/System.DirectoryServices/Directory.Build.props @@ -1,10 +1,6 @@  - - 4.0.0.0 true diff --git a/src/libraries/System.DirectoryServices/Directory.Build.targets b/src/libraries/System.DirectoryServices/Directory.Build.targets new file mode 100644 index 00000000000000..ab75d51e44c5ee --- /dev/null +++ b/src/libraries/System.DirectoryServices/Directory.Build.targets @@ -0,0 +1,8 @@ + + + + + 4.0.0.0 + + diff --git a/src/libraries/System.Management/Directory.Build.props b/src/libraries/System.Management/Directory.Build.props index bfa544ca6f649e..709a22a7537088 100644 --- a/src/libraries/System.Management/Directory.Build.props +++ b/src/libraries/System.Management/Directory.Build.props @@ -1,10 +1,6 @@  - - 4.0.0.0 Microsoft windows diff --git a/src/libraries/System.Management/Directory.Build.targets b/src/libraries/System.Management/Directory.Build.targets new file mode 100644 index 00000000000000..23d731313a4eea --- /dev/null +++ b/src/libraries/System.Management/Directory.Build.targets @@ -0,0 +1,10 @@ + + + + + 4.0.0.0 + + diff --git a/src/libraries/System.Reflection.Context/Directory.Build.props b/src/libraries/System.Reflection.Context/Directory.Build.props index ed15ad04f46183..798ccfd363e813 100644 --- a/src/libraries/System.Reflection.Context/Directory.Build.props +++ b/src/libraries/System.Reflection.Context/Directory.Build.props @@ -1,7 +1,6 @@  - 4.0.3.0 ECMA diff --git a/src/libraries/System.Reflection.Context/Directory.Build.targets b/src/libraries/System.Reflection.Context/Directory.Build.targets new file mode 100644 index 00000000000000..7be2b48ea67e2d --- /dev/null +++ b/src/libraries/System.Reflection.Context/Directory.Build.targets @@ -0,0 +1,9 @@ + + + + + 4.0.3.0 + + diff --git a/src/libraries/System.Runtime.Caching/Directory.Build.props b/src/libraries/System.Runtime.Caching/Directory.Build.props index 30af6959a0707b..d68d22c1b917f8 100644 --- a/src/libraries/System.Runtime.Caching/Directory.Build.props +++ b/src/libraries/System.Runtime.Caching/Directory.Build.props @@ -1,10 +1,6 @@  - - 4.0.0.0 Microsoft true diff --git a/src/libraries/System.Runtime.Caching/Directory.Build.targets b/src/libraries/System.Runtime.Caching/Directory.Build.targets new file mode 100644 index 00000000000000..ab75d51e44c5ee --- /dev/null +++ b/src/libraries/System.Runtime.Caching/Directory.Build.targets @@ -0,0 +1,8 @@ + + + + + 4.0.0.0 + + diff --git a/src/libraries/System.Speech/Directory.Build.props b/src/libraries/System.Speech/Directory.Build.props index db2f816d5af405..d43c87c09cb684 100644 --- a/src/libraries/System.Speech/Directory.Build.props +++ b/src/libraries/System.Speech/Directory.Build.props @@ -1,10 +1,6 @@  - - 4.0.0.0 MicrosoftShared windows diff --git a/src/libraries/System.Speech/Directory.Build.targets b/src/libraries/System.Speech/Directory.Build.targets new file mode 100644 index 00000000000000..ab75d51e44c5ee --- /dev/null +++ b/src/libraries/System.Speech/Directory.Build.targets @@ -0,0 +1,8 @@ + + + + + 4.0.0.0 + + From 560554bee606195d247175bad8e01a9a93b17bcc Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Tue, 4 Apr 2023 18:13:21 -0700 Subject: [PATCH 2/3] Enable System.Management and System.DirectoryServices.Protocols in servicing --- .../src/System.DirectoryServices.Protocols.csproj | 4 ++-- src/libraries/System.Management/src/System.Management.csproj | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj b/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj index 113314caad90c9..4b25592e6f785e 100644 --- a/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj +++ b/src/libraries/System.DirectoryServices.Protocols/src/System.DirectoryServices.Protocols.csproj @@ -5,8 +5,8 @@ $(NetCoreAppCurrent)-windows;$(NetCoreAppCurrent)-OSX;$(NetCoreAppCurrent)-Linux;$(NetCoreAppCurrent);netcoreapp3.1-windows;netcoreapp3.1-OSX;netcoreapp3.1-Linux;netcoreapp3.1;netstandard2.0 true - false - 1 + true + 2 true true Provides the methods defined in the Lightweight Directory Access Protocol (LDAP) version 3 (V3) and Directory Services Markup Language (DSML) version 2.0 (V2) standards. diff --git a/src/libraries/System.Management/src/System.Management.csproj b/src/libraries/System.Management/src/System.Management.csproj index aaf1fd7e9e4cdc..493c7105da4cbb 100644 --- a/src/libraries/System.Management/src/System.Management.csproj +++ b/src/libraries/System.Management/src/System.Management.csproj @@ -7,7 +7,7 @@ true true - 1 + 2 true true Provides access to a rich set of management information and management events about the system, devices, and applications instrumented to the Windows Management Instrumentation (WMI) infrastructure. From 17ce2fd1cc7a2733a7730877f1bba6398760a852 Mon Sep 17 00:00:00 2001 From: Eric StJohn Date: Wed, 5 Apr 2023 14:54:55 -0700 Subject: [PATCH 3/3] Address feedback --- .../src/Microsoft.Windows.Compatibility.csproj | 2 +- .../System.ComponentModel.Composition/Directory.Build.targets | 2 +- .../Directory.Build.targets | 2 +- .../System.DirectoryServices.Protocols/Directory.Build.targets | 2 +- src/libraries/System.DirectoryServices/Directory.Build.targets | 2 +- src/libraries/System.Management/Directory.Build.targets | 2 +- src/libraries/System.Reflection.Context/Directory.Build.targets | 2 +- src/libraries/System.Runtime.Caching/Directory.Build.targets | 2 +- src/libraries/System.Speech/Directory.Build.targets | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/libraries/Microsoft.Windows.Compatibility/src/Microsoft.Windows.Compatibility.csproj b/src/libraries/Microsoft.Windows.Compatibility/src/Microsoft.Windows.Compatibility.csproj index 2869bc48244128..96212cd348f63d 100644 --- a/src/libraries/Microsoft.Windows.Compatibility/src/Microsoft.Windows.Compatibility.csproj +++ b/src/libraries/Microsoft.Windows.Compatibility/src/Microsoft.Windows.Compatibility.csproj @@ -6,7 +6,7 @@ false true true - 4 + 5 $(NoWarn);NU5128 This Windows Compatibility Pack provides access to APIs that were previously available only for .NET Framework. It can be used from both .NET Core as well as .NET Standard. diff --git a/src/libraries/System.ComponentModel.Composition/Directory.Build.targets b/src/libraries/System.ComponentModel.Composition/Directory.Build.targets index ab75d51e44c5ee..e8aeeb47a8da9c 100644 --- a/src/libraries/System.ComponentModel.Composition/Directory.Build.targets +++ b/src/libraries/System.ComponentModel.Composition/Directory.Build.targets @@ -2,7 +2,7 @@ + remains <= the .NETFramework version --> 4.0.0.0 diff --git a/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.targets b/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.targets index ab75d51e44c5ee..e8aeeb47a8da9c 100644 --- a/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.targets +++ b/src/libraries/System.DirectoryServices.AccountManagement/Directory.Build.targets @@ -2,7 +2,7 @@ + remains <= the .NETFramework version --> 4.0.0.0 diff --git a/src/libraries/System.DirectoryServices.Protocols/Directory.Build.targets b/src/libraries/System.DirectoryServices.Protocols/Directory.Build.targets index 23d731313a4eea..69fc811d007beb 100644 --- a/src/libraries/System.DirectoryServices.Protocols/Directory.Build.targets +++ b/src/libraries/System.DirectoryServices.Protocols/Directory.Build.targets @@ -2,7 +2,7 @@ 4.0.0.0 diff --git a/src/libraries/System.DirectoryServices/Directory.Build.targets b/src/libraries/System.DirectoryServices/Directory.Build.targets index ab75d51e44c5ee..e8aeeb47a8da9c 100644 --- a/src/libraries/System.DirectoryServices/Directory.Build.targets +++ b/src/libraries/System.DirectoryServices/Directory.Build.targets @@ -2,7 +2,7 @@ + remains <= the .NETFramework version --> 4.0.0.0 diff --git a/src/libraries/System.Management/Directory.Build.targets b/src/libraries/System.Management/Directory.Build.targets index 23d731313a4eea..69fc811d007beb 100644 --- a/src/libraries/System.Management/Directory.Build.targets +++ b/src/libraries/System.Management/Directory.Build.targets @@ -2,7 +2,7 @@ 4.0.0.0 diff --git a/src/libraries/System.Reflection.Context/Directory.Build.targets b/src/libraries/System.Reflection.Context/Directory.Build.targets index 7be2b48ea67e2d..0d1f58eb0e89d0 100644 --- a/src/libraries/System.Reflection.Context/Directory.Build.targets +++ b/src/libraries/System.Reflection.Context/Directory.Build.targets @@ -2,7 +2,7 @@ 4.0.3.0 diff --git a/src/libraries/System.Runtime.Caching/Directory.Build.targets b/src/libraries/System.Runtime.Caching/Directory.Build.targets index ab75d51e44c5ee..e8aeeb47a8da9c 100644 --- a/src/libraries/System.Runtime.Caching/Directory.Build.targets +++ b/src/libraries/System.Runtime.Caching/Directory.Build.targets @@ -2,7 +2,7 @@ + remains <= the .NETFramework version --> 4.0.0.0 diff --git a/src/libraries/System.Speech/Directory.Build.targets b/src/libraries/System.Speech/Directory.Build.targets index ab75d51e44c5ee..e8aeeb47a8da9c 100644 --- a/src/libraries/System.Speech/Directory.Build.targets +++ b/src/libraries/System.Speech/Directory.Build.targets @@ -2,7 +2,7 @@ + remains <= the .NETFramework version --> 4.0.0.0