From a6c7c26a522e238a75ccba9531ed2affcf719777 Mon Sep 17 00:00:00 2001 From: DaNike Date: Sat, 8 Nov 2025 08:48:34 -0600 Subject: [PATCH] Strong name Backports and fix shim references to use strong name --- MonoMod.Backports.snk | Bin 0 -> 1172 bytes .../Directory.Build.targets | 32 ++++++++++++++---- .../MonoMod.Backports.csproj | 12 ++++--- src/MonoMod.Backports/NuGet.targets | 6 ---- .../MonoMod.Backports.Tasks.csproj | 3 -- src/build/ShimGen/Program.cs | 15 +++++--- tools/Common.CS.props | 13 ------- tools/Common.targets | 4 +-- 8 files changed, 45 insertions(+), 40 deletions(-) create mode 100644 MonoMod.Backports.snk diff --git a/MonoMod.Backports.snk b/MonoMod.Backports.snk new file mode 100644 index 0000000000000000000000000000000000000000..263639137efe2624ef0fa0b229188e7dd147282d GIT binary patch literal 1172 zcmV;F1Z(>T0ssI2Bme+XQ$aES2mk;90098mIj}q0!2Uf5=p*XK{KJ!3R$QL zLuFJkp|jv@sM0XkN_e?PG**#?E4AKrRyQnM;VW$v?)-J{f|vp_Ax%+rD$HTzzhJ?6 zBn-kGPY8Q?>M#Sj%umQL>fn1C3(ji-U)=K8XAD zr8e3%t*+q$JtD~3X5ncv(Kw}?oM3)3T!fvCY661Q{a10hEkZVG{!sNA((6%~y(_hC zxnm*Ky+Z$v=-f7PtGI71syPqk%bvv<+q4l(h4chwD_()Z-ir`gD3Cx7^@+t}qglKf zB^A~NZ|iWI#&L;N7%9#;MWSf8vS4vrZLxp)11P3&xy34`NKXBQP0Dinxw90;7pfL|&7D#(c>Tu7$g` zYPA77&)-b-Dv`jwkPx5JXv$n9&s8-2J!lnRLi@hndd4t;mTNd6waPW~sH_s%iFUry zd52@-$nhrX!*Y5da0FQkdVV z3$^&ep`|Rs7lDU4;4aIb*?$BzaH%CZ{h@h%!KW9 + Condition="'$(dotnet-nugetize)' == ''"> <_ExistingShimFiles Include="$(_ShimsDir)**/*" /> @@ -140,16 +139,37 @@ <_ShimGenExe>%(MMShimGen.RelativeDir)%(FileName)$(_NativeExecutableExtension) <_SnkDir>$(MMRootPath)snk/ + + + <_BackportsProps Remove="@(_BackportsProps)"/> + + + + + + + + <_BackportsAsmVersion> + <_BackportsKeyFile> + <_BackportsAsmVersion Condition="'%(_BackportsProps.Identity)' == 'AssemblyVersion'">%(_BackportsProps.Value) + <_BackportsKeyFile Condition="'%(_BackportsProps.Identity)' == 'AssemblyOriginatorKeyFile'">%(_BackportsProps.Value) + <_PPArguments Remove="@(_PPArguments)" /> - + + <_PPArguments Include="$(_BackportsAsmVersion)" /> + + <_PPArguments Include="$(_BackportsKeyFile)" /> + <_PPArguments Include="$(_ShimsDir)" /> - + <_PPArguments Include="$(_SnkDir)" /> - + <_PPArguments Include="$(_BackportsTfmsTxt)" /> - + <_PPArguments Include="@(_ShimmedPackagePaths)" /> diff --git a/src/MonoMod.Backports/MonoMod.Backports.csproj b/src/MonoMod.Backports/MonoMod.Backports.csproj index 5450345..11368ee 100644 --- a/src/MonoMod.Backports/MonoMod.Backports.csproj +++ b/src/MonoMod.Backports/MonoMod.Backports.csproj @@ -1,4 +1,4 @@ - + @@ -6,13 +6,17 @@ $(NoWarn);CA1200;CA1716 - false A set of backports of new BCL features to all frameworks which MonoMod supports. + + $(MMRootPath)MonoMod.Backports.snk + true + + $([MSBuild]::GetTargetFrameworkIdentifier('$(TargetFramework)')) $([MSBuild]::GetTargetFrameworkVersion('$(TargetFramework)')) @@ -24,9 +28,7 @@ - + diff --git a/src/MonoMod.Backports/NuGet.targets b/src/MonoMod.Backports/NuGet.targets index 29d741e..72ec989 100644 --- a/src/MonoMod.Backports/NuGet.targets +++ b/src/MonoMod.Backports/NuGet.targets @@ -1,11 +1,5 @@ - - - - - - Explicit diff --git a/src/build/MonoMod.Backports.Tasks/MonoMod.Backports.Tasks.csproj b/src/build/MonoMod.Backports.Tasks/MonoMod.Backports.Tasks.csproj index a19cb2a..a9c69e0 100644 --- a/src/build/MonoMod.Backports.Tasks/MonoMod.Backports.Tasks.csproj +++ b/src/build/MonoMod.Backports.Tasks/MonoMod.Backports.Tasks.csproj @@ -3,8 +3,6 @@ netstandard2.0 - false - disable false @@ -13,7 +11,6 @@ - diff --git a/src/build/ShimGen/Program.cs b/src/build/ShimGen/Program.cs index bf99141..a1e2925 100644 --- a/src/build/ShimGen/Program.cs +++ b/src/build/ShimGen/Program.cs @@ -13,14 +13,15 @@ using System.Diagnostics.CodeAnalysis; if (args is not [ + var backportsVersion, + var backportsSnkFile, var outputRefDir, var snkPath, var tfmsFilePath, .. var dotnetOobPackagePaths ]) { - Console.Error.WriteLine("Assemblies not provided."); - Console.Error.WriteLine("Syntax: <...oob package paths...>"); + Console.Error.WriteLine("Syntax: <...oob package paths...>"); Console.Error.WriteLine("Arguments provided: "); foreach (var arg in args) { @@ -160,6 +161,12 @@ .. var dotnetOobPackagePaths .OrderBy(t => t.fwk, precSorter) .ToArray(); +var backportsReferenceBase = new AssemblyReference( + "MonoMod.Backports", + new Version(backportsVersion), + publicKey: true, + StrongNamePrivateKey.FromFile(backportsSnkFile).CreatePublicKeyBlob(AssemblyHashAlgorithm.Sha1)); + // Now, we have some work to do for shims. We want to check if there is an equivalent type to the shims // defined or exported from Backports, and rewrite a new shim forwarding to Backports as appropriate. var importedSet = new Dictionary(); @@ -195,9 +202,7 @@ .. var dotnetOobPackagePaths HasPublicKey = bclShim.Assembly!.HasPublicKey, }; - backportsReference = - new AssemblyReference("MonoMod.Backports", new(1, 0, 0, 0)) - .ImportWith(backportsShim.DefaultImporter); + backportsReference = backportsReferenceBase.ImportWith(backportsShim.DefaultImporter); foreach (var file in dllsByDllName[dllName].Values.SelectMany(x => x)) { diff --git a/tools/Common.CS.props b/tools/Common.CS.props index 57d6faa..8a564bf 100644 --- a/tools/Common.CS.props +++ b/tools/Common.CS.props @@ -21,8 +21,6 @@ All 8.0 - true - $(NoWarn);CS1591 $(NoWarn);CA1716 $(NoWarn);CA1003 @@ -37,16 +35,5 @@ - - - - all - runtime; build; native; contentfiles; analyzers - - - all - runtime; build; native; contentfiles; analyzers - - \ No newline at end of file diff --git a/tools/Common.targets b/tools/Common.targets index e48f236..9a09390 100644 --- a/tools/Common.targets +++ b/tools/Common.targets @@ -22,11 +22,11 @@ - <_PropertiesToGet Include="$(PropertyNames)" /> + <_PropertiesToGet Include="$([System.String]::Copy($(PropertyNames)).Split(','))" /> - +