Browse Source

Working ANCM arm64 installers (#39523)

Hao Kung 4 years ago
parent
commit
b4ccd7ba89

+ 2 - 1
.azure/pipelines/ci.yml

@@ -234,7 +234,7 @@ stages:
                 $(WindowsSignLogArgs)
         displayName: Code sign packages
 
-      # Windows installers bundle both x86 and x64 assets
+      # Windows installers bundle x86/x64/arm64 assets
       - script: ./eng/build.cmd
                 -ci
                 -noBuildRepoTasks
@@ -242,6 +242,7 @@ stages:
                 -buildInstallers
                 -noBuildNative
                 /p:DotNetSignType=$(_SignType)
+                /p:BuildInParallel=false
                 $(_BuildArgs)
                 $(_InternalRuntimeDownloadArgs)
                 $(WindowsInstallersLogArgs)

+ 6 - 3
AspNetCore.sln

@@ -9760,7 +9760,8 @@ Global
 		{7C27E72F-54D0-4820-8CFA-5E4BE640974B}.Debug|x86.Build.0 = Debug|Win32
 		{7C27E72F-54D0-4820-8CFA-5E4BE640974B}.Debug|x86.Deploy.0 = Debug|Win32
 		{7C27E72F-54D0-4820-8CFA-5E4BE640974B}.Release|Any CPU.ActiveCfg = Release|Win32
-		{7C27E72F-54D0-4820-8CFA-5E4BE640974B}.Release|arm64.ActiveCfg = Release|Win32
+		{7C27E72F-54D0-4820-8CFA-5E4BE640974B}.Release|arm64.ActiveCfg = Release|ARM64
+		{7C27E72F-54D0-4820-8CFA-5E4BE640974B}.Release|arm64.Build.0 = Release|ARM64
 		{7C27E72F-54D0-4820-8CFA-5E4BE640974B}.Release|x64.ActiveCfg = Release|x64
 		{7C27E72F-54D0-4820-8CFA-5E4BE640974B}.Release|x64.Build.0 = Release|x64
 		{7C27E72F-54D0-4820-8CFA-5E4BE640974B}.Release|x86.ActiveCfg = Release|Win32
@@ -9774,7 +9775,8 @@ Global
 		{7324770C-0871-4D73-BE3D-5E2F3E9E1B1E}.Debug|x86.Build.0 = Debug|Win32
 		{7324770C-0871-4D73-BE3D-5E2F3E9E1B1E}.Debug|x86.Deploy.0 = Debug|Win32
 		{7324770C-0871-4D73-BE3D-5E2F3E9E1B1E}.Release|Any CPU.ActiveCfg = Release|Win32
-		{7324770C-0871-4D73-BE3D-5E2F3E9E1B1E}.Release|arm64.ActiveCfg = Release|Win32
+		{7324770C-0871-4D73-BE3D-5E2F3E9E1B1E}.Release|arm64.ActiveCfg = Release|ARM64
+		{7324770C-0871-4D73-BE3D-5E2F3E9E1B1E}.Release|arm64.Build.0 = Release|ARM64
 		{7324770C-0871-4D73-BE3D-5E2F3E9E1B1E}.Release|x64.ActiveCfg = Release|x64
 		{7324770C-0871-4D73-BE3D-5E2F3E9E1B1E}.Release|x64.Build.0 = Release|x64
 		{7324770C-0871-4D73-BE3D-5E2F3E9E1B1E}.Release|x86.ActiveCfg = Release|Win32
@@ -9788,7 +9790,8 @@ Global
 		{B54A8F61-60DE-4AD9-87CA-D102F230678E}.Debug|x86.Build.0 = Debug|Win32
 		{B54A8F61-60DE-4AD9-87CA-D102F230678E}.Debug|x86.Deploy.0 = Debug|Win32
 		{B54A8F61-60DE-4AD9-87CA-D102F230678E}.Release|Any CPU.ActiveCfg = Release|Win32
-		{B54A8F61-60DE-4AD9-87CA-D102F230678E}.Release|arm64.ActiveCfg = Release|Win32
+		{B54A8F61-60DE-4AD9-87CA-D102F230678E}.Release|arm64.ActiveCfg = Release|ARM64
+		{B54A8F61-60DE-4AD9-87CA-D102F230678E}.Release|arm64.Build.0 = Release|ARM64
 		{B54A8F61-60DE-4AD9-87CA-D102F230678E}.Release|x64.ActiveCfg = Release|x64
 		{B54A8F61-60DE-4AD9-87CA-D102F230678E}.Release|x64.Build.0 = Release|x64
 		{B54A8F61-60DE-4AD9-87CA-D102F230678E}.Release|x86.ActiveCfg = Release|Win32

+ 6 - 1
eng/Build.props

@@ -60,20 +60,24 @@
       </ItemGroup>
     </When>
     <Otherwise>
-      <ItemGroup Condition=" '$(BuildInstallers)' == 'true' AND '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64')  ">
+      <ItemGroup Condition=" '$(BuildInstallers)' == 'true' AND '$(TargetOsName)' == 'win' AND ('$(TargetArchitecture)' == 'x86' OR '$(TargetArchitecture)' == 'x64') ">
         <!-- Build the ANCM custom action -->
         <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\CustomAction\aspnetcoreCA.vcxproj" AdditionalProperties="Platform=x64" />
         <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\CustomAction\aspnetcoreCA.vcxproj" AdditionalProperties="Platform=Win32" />
+        <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\CustomAction\aspnetcoreCA.vcxproj" AdditionalProperties="Platform=arm64" />
 
         <!-- Build the ANCM msis -->
         <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMIISExpressV2\AncmIISExpressV2.wixproj" AdditionalProperties="Platform=x64" />
         <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMIISExpressV2\AncmIISExpressV2.wixproj" AdditionalProperties="Platform=x86" />
+        <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMIISExpressV2\AncmIISExpressV2.wixproj" AdditionalProperties="Platform=arm64" />
         <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMV2\ANCMV2.wixproj" AdditionalProperties="Platform=x64" />
         <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMV2\ANCMV2.wixproj" AdditionalProperties="Platform=x86" />
+        <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\AspNetCoreModule-Setup\ANCMV2\ANCMV2.wixproj" AdditionalProperties="Platform=arm64" />
 
         <!-- Build the targeting pack installers -->
         <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\TargetingPack\TargetingPack.wixproj" AdditionalProperties="Platform=x64" />
         <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\TargetingPack\TargetingPack.wixproj" AdditionalProperties="Platform=x86" />
+        <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\TargetingPack\TargetingPack.wixproj" AdditionalProperties="Platform=arm64" />
         <!-- This really shouldn't be here, but instead of harvesting from the intermediate/output directories, the targetting pack installer logic
         harvests from a zip of the reference assemblies. Producing it in each leg ends up with multiple targeting packs
         getting produced and the BAR will reject the build. Centralize building the targeting pack in the x86/x64 leg. -->
@@ -89,6 +93,7 @@
 
         <!-- Windows hosting bundled -->
         <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\WindowsHostingBundle\WindowsHostingBundle.wixproj" AdditionalProperties="Platform=x86" />
+        <ProjectToBuild Include="$(RepoRoot)src\Installers\Windows\WindowsHostingBundle\WindowsHostingBundle.wixproj" AdditionalProperties="Platform=arm64" />
       </ItemGroup>
 
       <ItemGroup Condition=" '$(BuildInstallers)' == 'true' AND '$(TargetOsName)' == 'win' AND '$(TargetArchitecture)' == 'arm64' ">

+ 10 - 0
src/Installers/Windows/AspNetCoreModule-Setup/ANCM-Setup.slnf

@@ -0,0 +1,10 @@
+{
+  "solution": {
+    "path": "..\\..\\..\\..\\AspNetCore.sln",
+    "projects" : [
+      "src\\Installers\\Windows\\AspNetCoreModule-Setup\\CustomAction\\aspnetcoreCA.vcxproj",
+      "src\\Installers\\Windows\\AspNetCoreModule-Setup\\IIS-Setup\\iisca\\lib\\iisca.vcxproj",
+      "src\\Installers\\Windows\\AspNetCoreModule-Setup\\IIS-Setup\\IIS-Common\\lib\\IISSetup.CommonLib.vcxproj"
+    ]
+  }
+}

+ 7 - 6
src/Installers/Windows/AspNetCoreModule-Setup/ANCMIISExpressV2/ancm_iis_expressv2.wxs

@@ -31,15 +31,16 @@
 <?define AspNetCoreTraceProviderValue = "65536" ?>
 <?define AspNetCoreModuleName = "AspNetCoreModuleV2" ?>
 
-<?if $(var.Platform) = "x64" ?>
+<?if $(var.Platform) = "x86" ?>
+    <?define SchemaGuid = "e629b31a-3d56-4b5c-959c-586fc1c55599" ?>
+    <?define AspNetCoreV2ProgramFilesTargetPath = "$(var.AspNetCoreV2WoW64.TargetPath)" ?>
+    <?define AspNetCoreV2HandlerProgramFilesTargetPath = "$(var.AspNetCoreV2HandlerWoW64.TargetPath)" ?>
+<?else ?>
+<!-- REVIEW does arm64 need to be different than x64 for anything?-->
     <?define SchemaGuid = "ab582af2-d6c0-43f7-8412-76a19c65d7f2" ?>
     <?define SchemaGuid32 = "e629b31a-3d56-4b5c-959c-586fc1c55599" ?>
     <?define AspNetCoreV2ProgramFilesTargetPath = "$(var.AspNetCoreV2.TargetPath)" ?>
     <?define AspNetCoreV2HandlerProgramFilesTargetPath = "$(var.AspNetCoreV2Handler.TargetPath)" ?>
-<?else ?>
-    <?define SchemaGuid = "e629b31a-3d56-4b5c-959c-586fc1c55599" ?>
-    <?define AspNetCoreV2ProgramFilesTargetPath = "$(var.AspNetCoreV2WoW64.TargetPath)" ?>
-    <?define AspNetCoreV2HandlerProgramFilesTargetPath = "$(var.AspNetCoreV2HandlerWoW64.TargetPath)" ?>
 <?endif ?>
 
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:dep="http://schemas.microsoft.com/wix/DependencyExtension">
@@ -56,7 +57,7 @@
                  Manufacturer="!(loc.Manufacturer)"
                  Compressed="yes"
                  InstallPrivileges="elevated"
-                 InstallerVersion="400"
+                 InstallerVersion="$(var.ANCMInstallerVersion)"
                  Platform="$(var.PlatformValue)" />
 
         <Media Id="1" Cabinet="aspnetcoremodule.cab" EmbedCab="yes" CompressionLevel="high"/>

+ 57 - 3
src/Installers/Windows/AspNetCoreModule-Setup/ANCMV2/aspnetcoremodulev2.wxs

@@ -27,9 +27,12 @@
 <?if $(var.Platform) = "x64" ?>
     <?define AspNetCoreV2ProgramFilesTargetPath = "$(var.AspNetCoreV2.TargetPath)" ?>
     <?define AspNetCoreV2HandlerProgramFilesTargetPath = "$(var.AspNetCoreV2Handler.TargetPath)" ?>
-<?else ?>
+<?elseif $(var.Platform) = "x86" ?>
     <?define AspNetCoreV2ProgramFilesTargetPath = "$(var.AspNetCoreV2WoW64.TargetPath)" ?>
     <?define AspNetCoreV2HandlerProgramFilesTargetPath = "$(var.AspNetCoreV2HandlerWoW64.TargetPath)" ?>
+<?elseif $(var.Platform) = "arm64" ?>
+    <?define AspNetCoreV2ProgramFilesTargetPath = "$(var.AspNetCoreV2ARM64.TargetPath)" ?>
+    <?define AspNetCoreV2HandlerProgramFilesTargetPath = "$(var.AspNetCoreV2HandlerARM64.TargetPath)" ?>
 <?endif ?>
 
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:dep="http://schemas.microsoft.com/wix/DependencyExtension">
@@ -46,7 +49,7 @@
                  Manufacturer="!(loc.Manufacturer)"
                  Compressed="yes"
                  InstallPrivileges="elevated"
-                 InstallerVersion="400"
+                 InstallerVersion="$(var.ANCMInstallerVersion)"
                  Platform="$(var.PlatformValue)" />
 
         <Media Id="1" Cabinet="aspnetcoremodule.cab" EmbedCab="yes" CompressionLevel="high"/>
@@ -85,12 +88,14 @@
         <?endif ?>
 
         <!-- also prevent install of 64-bit product on 32-bit machine -->
-        <?if $(var.Platform) = "x64"?>
+        <?if $(var.Platform) = "x64" OR  $(var.Platform) = "arm64"?>
         <Condition Message="!(loc.LaunchCondition_32BIT)">
             <![CDATA[(Installed And NOT PATCH) Or VersionNT64]]>
         </Condition>
         <?endif ?>
 
+        <!-- REVIEW need arm64 checks too? -->
+        
         <Property Id="ALLUSERS">1</Property>
 
         <!-- Detect IIS version and require 7.5 -->
@@ -215,6 +220,50 @@
                 </Directory>
             </Directory>
             <?endif ?>
+            
+           <!-- ARM64 Support -->
+           <?if $(var.Platform) = "arm64" ?>
+           <Component Id="C_DiscoverabilityKeyARM64" Guid="2eeb90e8-28d0-4543-9c2f-843b03bd6d05" Win64="no">
+               <RegistryKey Root="HKLM" Key="$(var.DiscoverabilityKeyRoot)">
+                    <RegistryKey Key="$(var.ProductShortName)">
+                        <RegistryValue Type="integer" Name="Install" Value="1" />
+                        <RegistryValue Type="string" Name="Version" Value="$(var.ANCMMsiVersion)" />
+                    </RegistryKey>
+                </RegistryKey>
+            </Component>
+
+            <Directory Id="$(var.ProgramFilesFolder32)">
+                 <Directory Id="IISModuleDirectory32" Name="IIS">
+                    <Directory Id="INSTALLLOCATION32" ShortName="ANCM" Name="Asp.Net Core Module">
+                        <Directory Id="VersionDir32" Name="$(var.ProductVersionString)" SourceName="Arm64Only" >
+                            <Component Id="AspNetCoreModuleV2.arm64" Guid="1b8ecba0-c002-442a-92c0-0fa9c0f21df4" Win64="no">
+                                <File Id="AspNetCoreModuleV2Dll.arm64"
+                                    Name="aspnetcorev2.dll"
+                                    Source="$(var.AspNetCoreV2ARM64.TargetPath)"
+                                    DiskId="1"
+                                    Vital="yes">
+                                </File>
+                                <RemoveFile Id="AspNetCoreModuleV2Dll.arm64_Remove" Name="aspnetcorev2.dll" On="install" />
+                                <RegistryKey Root="HKLM" Key="SYSTEM\CurrentControlSet\Services\EventLog\Application\$(var.ProductShortName)">
+                                    <RegistryValue Name="EventMessageFile" Type="expandable" Value="[#AspNetCoreModuleV2Dll.arm64]"/>
+                                    <RegistryValue Name="TypesSupported" Type="integer" Value="7"/>
+                                </RegistryKey>
+                            </Component>
+                            <Directory Id="HandlerVersionDir32" Name="$(var.ANCMFolderVersion)" SourceName="Arm64Only">
+                                <Component Id="AspNetCoreModuleHandler.arm64" Guid="d927e5d3-c8b2-400c-b85c-ae5c2772d6c3" Win64="no">
+                                    <File Id="AspNetCoreModuleHandlerDll.arm64"
+                                          Name="aspnetcorev2_outofprocess.dll"
+                                          Source="$(var.AspNetCoreV2HandlerARM64.TargetPath)"
+                                          DiskId="1"
+                                          Vital="yes">
+                                    </File>
+                                </Component>
+                            </Directory>
+                        </Directory>
+                    </Directory>
+                </Directory>
+            </Directory>
+            <?endif ?>
         </Directory>
 
         <!-- Feature Definition -->
@@ -228,6 +277,11 @@
             <ComponentRef Id="AspNetCoreModuleV2.wow"/>
             <ComponentRef Id="AspNetCoreModuleHandler.wow"/>
             <?endif ?>
+            <?if $(var.Platform) = "arm64" ?>
+            <ComponentRef Id="C_DiscoverabilityKeyARM64"/>
+            <ComponentRef Id="AspNetCoreModuleV2.arm64"/>
+            <ComponentRef Id="AspNetCoreModuleHandler.arm64"/>
+            <?endif ?>
         </Feature>
 
         <!-- User Interface -->

+ 2 - 3
src/Installers/Windows/AspNetCoreModule-Setup/CustomAction/aspnetcoreCA.vcxproj

@@ -49,8 +49,7 @@
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup>
     <ConfigurationType>DynamicLibrary</ConfigurationType>
-    <PlatformToolsetVersion Condition="'$(VisualStudioVersion)' == '17.0' ">v143</PlatformToolsetVersion>
-    <PlatformToolsetVersion Condition="'$(PlatformToolsetVersion)' == ''">v142</PlatformToolsetVersion>
+    <PlatformToolsetVersion>v142</PlatformToolsetVersion>
     <PlatformToolset>$(PlatformToolsetVersion)</PlatformToolset>
     <CharacterSet>Unicode</CharacterSet>
   </PropertyGroup>
@@ -58,7 +57,7 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
   <PropertyGroup Label="Configuration">
-    <VCToolsVersion />
+    <VCToolsVersion>14.29.30133</VCToolsVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <PropertyGroup>

+ 15 - 0
src/Installers/Windows/AspNetCoreModule-Setup/Directory.Build.props

@@ -70,5 +70,20 @@
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
       <SetPlatform>Platform=Win32</SetPlatform>
     </ProjectReference>
+   
+    <ProjectReference Include="$(_ServerIISBasePath)AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj">
+      <Name>AspNetCoreV2ARM64</Name>
+      <Private>True</Private>
+      <DoNotHarvest>True</DoNotHarvest>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <SetPlatform>Platform=ARM64</SetPlatform>
+    </ProjectReference>
+    <ProjectReference Include="$(_ServerIISBasePath)AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj">
+      <Name>AspNetCoreV2HandlerARM64</Name>
+      <Private>True</Private>
+      <DoNotHarvest>True</DoNotHarvest>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+      <SetPlatform>Platform=ARM64</SetPlatform>
+    </ProjectReference>
   </ItemGroup>
 </Project>

+ 3 - 3
src/Installers/Windows/AspNetCoreModule-Setup/IIS-Setup/iisca/lib/iisca.vcxproj

@@ -76,8 +76,8 @@
     <ProjectGuid>{7324770c-0871-4d73-be3d-5e2f3e9e1b1e}</ProjectGuid>
     <Keyword>Win32Proj</Keyword>
     <RootNamespace>iisca</RootNamespace>
-    <PlatformToolsetVersion Condition=" '$(VisualStudioVersion)' == '17.0' ">v143</PlatformToolsetVersion>
-    <PlatformToolsetVersion Condition=" '$(PlatformToolsetVersion)' == '' ">v142</PlatformToolsetVersion>
+    <WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.18362.0</WindowsTargetPlatformVersion>
+    <PlatformToolsetVersion>v142</PlatformToolsetVersion>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
   <PropertyGroup>
@@ -87,7 +87,7 @@
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
   <PropertyGroup Label="Configuration">
-    <VCToolsVersion />
+    <VCToolsVersion>14.29.30133</VCToolsVersion>
   </PropertyGroup>
   <PropertyGroup>
     <AdditionalIncludeDirectories>$(IIS-Common)version;$(IIS-Common)Include;$(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+ 6 - 7
src/Installers/Windows/AspNetCoreModule-Setup/IIS-Setup/include.wxi

@@ -2,13 +2,7 @@
 
 <Include>
   <?define DiscoverabilityKeyRoot = "SOFTWARE\Microsoft\IIS Extensions"?>
-  <?define OOBBuildVersion = $(var.BLDVERMAJOR).$(var.BLDVERMINOR).$(var.BLDNUMMAJOR).$(var.BLDNUMMINOR)?>
-
-  <!-- Allow build number as argument or use default -->
-  <?if $(var.BLDNUMMAJOR) = "" ?>
-    <?error Build number undefined ?>
-  <?endif?>
-
+  
   <?if $(var.Platform) = "x64"?>
     <?define IsWin64 = yes ?>
     <?define PlatformArchitecture = x64 ?>
@@ -17,18 +11,23 @@
     <?define SystemFolder = System64Folder ?>
     <?define SysWow64Folder = SystemFolder ?>
     <?define PlatformValue = x64 ?>
+    <?define ANCMInstallerVersion = 400 ?>
   <?elseif $(var.Platform) = "x86" ?>
     <?define IsWin64 = no ?>
     <?define PlatformArchitecture = x86 ?>
     <?define ProgramFilesFolder = ProgramFilesFolder ?>
     <?define SystemFolder = SystemFolder ?>
     <?define PlatformValue = Intel ?>
+    <?define ANCMInstallerVersion = 400 ?>
   <?elseif $(var.Platform) ~= "arm64" ?>
     <?define IsWin64 = yes ?>
     <?define PlatformArchitecture = ARM64 ?>
     <?define ProgramFilesFolder = ProgramFiles64Folder ?>
+    <?define ProgramFilesFolder32 = ProgramFilesFolder ?>
     <?define SystemFolder = System64Folder ?>
+    <?define SysWow64Folder = SystemFolder ?>
     <?define PlatformValue = "arm64" ?>
+    <?define ANCMInstallerVersion = 500 ?>
   <?endif?>
 
   <!-- Ensure build target properly initialized -->

+ 3 - 0
src/Installers/Windows/AspNetCoreModule-Setup/IIS-Setup/startvs.cmd

@@ -0,0 +1,3 @@
+@ECHO OFF
+
+%~dp0..\..\..\..\..\startvs.cmd %~dp0IIS-Setup.slnf

+ 1 - 0
src/Installers/Windows/AspNetCoreModule-Setup/build/settings/common.props

@@ -7,6 +7,7 @@
   <!-- Define platform shortnames for use in paths without having to rely on cpp props -->
   <PropertyGroup>
     <PlatformShortname Condition="'$(PlatformShortname)' == '' AND '$(Platform)' == 'x64'">x64</PlatformShortname>
+    <PlatformShortname Condition="'$(PlatformShortname)' == '' AND '$(Platform)' == 'arm64'">arm64</PlatformShortname>
     <PlatformShortname Condition="'$(PlatformShortname)' == '' AND ('$(Platform.ToLower())' == 'win32' OR '$(Platform)' == 'x86')">x86</PlatformShortname>
   </PropertyGroup>
 

+ 3 - 0
src/Installers/Windows/AspNetCoreModule-Setup/startvs.cmd

@@ -0,0 +1,3 @@
+@ECHO OFF
+
+%~dp0..\..\..\..\startvs.cmd %~dp0ANCM-Setup.slnf

+ 2 - 1
src/Installers/Windows/HostOptions/Product.wxs

@@ -1,4 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<?include ..\AspNetCoreModule-Setup\IIS-Setup\include.wxi ?>
 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
     <Product Id="$(var.ProductCode)" Name="$(var.ProductName)" Language="1033" Version="$(var.Version)" 
              Manufacturer="Microsoft Corporation" UpgradeCode="$(var.UpgradeCode)">
@@ -33,7 +34,7 @@
 
     <Fragment>
         <Directory Id="TARGETDIR" Name="SourceDir">
-            <Directory Id="ProgramFilesFolder">
+            <Directory Id="$(var.ProgramFilesFolder)">
                 <Directory Id="INSTALLFOLDER" Name="dotnet">
                     <Directory Id="MM" Name="$(var.MajorVersion).$(var.MinorVersion)" />
                 </Directory>

+ 3 - 0
src/Servers/IIS/IntegrationTesting.IIS/src/Microsoft.AspNetCore.Server.IntegrationTesting.IIS.csproj

@@ -40,6 +40,9 @@
     <NativeProjectReference Include="$(MSBuildThisFileDirectory)..\..\AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj" Platform="Win32" />
     <NativeProjectReference Include="$(MSBuildThisFileDirectory)..\..\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj" Platform="Win32" />
 
+    <NativeProjectReference Include="$(MSBuildThisFileDirectory)..\..\AspNetCoreModuleV2\AspNetCore\AspNetCore.vcxproj" Platform="ARM64" />
+    <NativeProjectReference Include="$(MSBuildThisFileDirectory)..\..\AspNetCoreModuleV2\OutOfProcessRequestHandler\OutOfProcessRequestHandler.vcxproj" Platform="ARM64" />
+
     <UpToDateCheckInput Include="$(AspNetCoreModuleV2ShimDll)" />
     <UpToDateCheckInput Include="$(AspNetCoreModuleV2OutOfProcessHandlerDll)" />
   </ItemGroup>