Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Reopen] Fix ANCM installer on ARM64 #59483

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

lextm
Copy link

@lextm lextm commented Dec 14, 2024

Revised ASP.NET Core module installers for Windows ARM64

  • You've read the Contributor Guide and Code of Conduct.
  • You've included unit or integration tests for your change, where applicable.
  • You've included inline docs for your change, where applicable.
  • There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.
  • Switch to LoadLibraryEx with LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR flag set, so that the pure forwarder works as desired.
  • Add ARM64X pure forwarders.
  • Revise WiX installers to use ARM64X pure forwarders

Fixes #47115.

Description

About the change in HandlerResolver.cpp

To implement all proposed installer changes in #47115, then in the out-of-process folder three files present,

  1. aspnetcorev2_outofprocess.dll, an ARM64X pure forwarder.
  2. aspnetcorev2_outofprocess_arm64.dll, the pure ARM64 handler.
  3. aspnetcorev2_outofprocess_x64.dll, the x64 handler.

Before this change, LoadLibrary only loads the pure forwarder, but then scans the default folders (the dll folder is not included) to load the actual handler which obviously fails.

After this change, LoadLibraryEx can pick up the correct handler as the dll folder is added in the search folder list.

About files in Forwarders folder

Source code for the two ARM64X pure forwarders.

About changes in ANCMV2 folder

Before this change, only ARM64 web apps can run on IIS.

After this change, the new file structure enables ARM64/x64/x86 side by side execution on IIS.

About changes in ANCMIISEXpressV2 folder

Before this change, only ARM64 web apps can run on IIS Express.

After this change, the new file structure enables ARM64/x64/x86 side by side execution on IIS Express.

@dotnet-issue-labeler dotnet-issue-labeler bot added the area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework label Dec 14, 2024
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label Dec 14, 2024
Copy link
Contributor

Hey @dotnet/aspnet-build, looks like this PR is something you want to take a look at.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-infrastructure Includes: MSBuild projects/targets, build scripts, CI, Installers and shared framework community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ASP.NET Core module installer should be improved further for Windows ARM64
1 participant