Sign api-ms-win-core-xstate-l2-1-0.dll
authorMatt Mitchell <mmitche@microsoft.com>
Mon, 13 Aug 2018 18:15:05 +0000 (11:15 -0700)
committerMatt Mitchell <mmitche@microsoft.com>
Tue, 20 Nov 2018 22:34:12 +0000 (14:34 -0800)
This file is only catalog signed in RS4.  Sign during the build. To achieve this copy the CRT binaries locally rather than referencing from the UCRT location directly.

Commit migrated from https://github.com/dotnet/coreclr/commit/557c8f0078b01a220077f02bc703c4a16c3e4e41

src/coreclr/src/.nuget/Microsoft.NETCore.Runtime.CoreCLR/runtime.Windows_NT.Microsoft.NETCore.Runtime.CoreCLR.props
src/coreclr/src/build.proj
src/coreclr/src/sign.builds

index 200ca18..648d7aa 100644 (file)
@@ -19,7 +19,7 @@
     <NativeBinary Include="$(BinDir)mscorrc.debug.dll" />
     <NativeBinary Include="$(BinDir)mscorrc.dll" />
     <NativeBinary Include="$(BinDir)sos.dll" />
-    <NativeBinary Include="$(UniversalCRTSDKDir)Redist\ucrt\DLLs\$(BuildArch)\*.dll" Condition="'$(BuildType)'=='Release' AND '$(BuildArch)' != 'arm64'" />
+    <NativeBinary Include="$(BinDir)Redist\ucrt\DLLs\$(BuildArch)\*.dll" Condition="'$(BuildType)'=='Release' AND '$(BuildArch)' != 'arm64'" />
     <CrossGenBinary Include="$(BinDir)System.Private.CoreLib.dll" />
     <ArchitectureSpecificLibFile Include="$(BinDir)SOS.NETCore.dll" />
     <ArchitectureSpecificToolFile Include="$(BinDir)crossgen.exe" />
index 4f34707..b7d0e8b 100644 (file)
         DestinationFolder="$(BinDir)PDB" />
   </Target>
 
+  <ItemGroup>
+    <UcrtFilesToCopy Include="$(UniversalCRTSDKDir)Redist\ucrt\DLLs\$(BuildArch)\*.dll" />
+  </ItemGroup>
+  <!-- Copy the UCRT files from the windows kit directory to the local directory.
+       The api-*xstate.dll binary needs to be signed. -->
+  <Target Name="CopyUcrtFiles" AfterTargets="Build">
+    <Copy Condition="'$(BuildType)'=='Release' AND '$(BuildArch)' != 'arm64'"
+        SourceFiles="@(UcrtFilesToCopy)"
+        DestinationFolder="$(BinDir)Redist\ucrt\DLLs\$(BuildArch)" />
+  </Target>
+
   <PropertyGroup>
     <RunEnforcePGO Condition="$(__EnforcePgo) == '1'">true</RunEnforcePGO>
     <RunEnforcePGO Condition="$(__BuildArch) == 'arm' OR $(__BuildArch) == 'arm64'">false</RunEnforcePGO>
index 413eb60..e1540c0 100644 (file)
     <WindowsNativeLocation Include="$(BinDir)*.dll" />
     <WindowsNativeLocation Include="$(BinDir)*.exe" />
   </ItemGroup>
+
+  <ItemGroup Condition="'$(BuildArch)' == 'x86'">
+    <!-- Sign api-ms-win-core-xstate-l2-1-0 binary as it is only catalog signed in the current SDK. -->
+    <WindowsNativeLocation Include="$(BinDir)Redist\ucrt\DLLs\$(BuildArch)\api-ms-win-core-xstate-l2-1-0.dll" />
+  </ItemGroup>
+
   <!-- sign the cross targeted files as well -->
   <ItemGroup Condition="'$(CrossTargetComponentFolder)' != ''">
     <WindowsNativeLocation Include="$(BinDir)$(CrossTargetComponentFolder)/*.dll" />