diff --git a/MonoMod.Backports.snk b/MonoMod.Backports.snk new file mode 100644 index 0000000..2636391 Binary files /dev/null and b/MonoMod.Backports.snk differ diff --git a/src/MonoMod.Backports.Shims/Directory.Build.targets b/src/MonoMod.Backports.Shims/Directory.Build.targets index 73fdf13..ded548d 100644 --- a/src/MonoMod.Backports.Shims/Directory.Build.targets +++ b/src/MonoMod.Backports.Shims/Directory.Build.targets @@ -125,8 +125,7 @@ DependsOnTargets="$(CoreCompileDependsOn);_PrepareRawTfmList;_GetShimmedPackages;ResolveProjectReferences" Inputs="$(MSBuildAllProjects);@(MMShimGen)" Outputs="$(_OutputTfmsTxt)" - Condition="'$(dotnet-nugetize)' == ''" - > + 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(','))" /> - +