From 905330d5c5dcaa23a91f4083c5d32f1392604a8c Mon Sep 17 00:00:00 2001 From: Lex Li Date: Fri, 13 Dec 2024 04:26:04 -0500 Subject: [PATCH 1/4] Revised ARM64 installation folder contents (dotnet#47115) --- .../ANCMIISExpressV2/ancm_iis_expressv2.wxs | 84 ++++++++++ .../ANCMV2/AncmV2.wixproj | 4 + .../ANCMV2/aspnetcoremodulev2.wxs | 157 +++++++++++------- .../AspNetCoreModule-Setup/Forwarders/all.cmd | 2 + .../Forwarders/aspnetcorev2_arm64.def | 2 + .../aspnetcorev2_outofprocess_arm64.def | 2 + .../aspnetcorev2_outofprocess_x64.def | 2 + .../Forwarders/aspnetcorev2_x64.def | 2 + .../Forwarders/build.cmd | 18 ++ .../Forwarders/build.proj | 24 +++ .../Forwarders/empty.cpp | 0 .../AspNetCore/HandlerResolver.cpp | 2 +- 12 files changed, 237 insertions(+), 62 deletions(-) create mode 100644 src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/all.cmd create mode 100644 src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_arm64.def create mode 100644 src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_outofprocess_arm64.def create mode 100644 src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_outofprocess_x64.def create mode 100644 src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_x64.def create mode 100644 src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.cmd create mode 100644 src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.proj create mode 100644 src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/empty.cpp diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/ANCMIISExpressV2/ancm_iis_expressv2.wxs b/src/Installers/Windows/AspNetCoreModule-Setup/ANCMIISExpressV2/ancm_iis_expressv2.wxs index 973049c973d6..df2e44ea40b2 100644 --- a/src/Installers/Windows/AspNetCoreModule-Setup/ANCMIISExpressV2/ancm_iis_expressv2.wxs +++ b/src/Installers/Windows/AspNetCoreModule-Setup/ANCMIISExpressV2/ancm_iis_expressv2.wxs @@ -164,6 +164,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -249,8 +324,17 @@ + + + + + + + + + diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/ANCMV2/AncmV2.wixproj b/src/Installers/Windows/AspNetCoreModule-Setup/ANCMV2/AncmV2.wixproj index bfae51ff3fa7..f51cf66196e7 100644 --- a/src/Installers/Windows/AspNetCoreModule-Setup/ANCMV2/AncmV2.wixproj +++ b/src/Installers/Windows/AspNetCoreModule-Setup/ANCMV2/AncmV2.wixproj @@ -81,4 +81,8 @@ '$(PackageIconFullPath)' ^ '$(PackageLicenseExpression)' " /> + + + + diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/ANCMV2/aspnetcoremodulev2.wxs b/src/Installers/Windows/AspNetCoreModule-Setup/ANCMV2/aspnetcoremodulev2.wxs index 471f789666d1..f96c13979b5f 100644 --- a/src/Installers/Windows/AspNetCoreModule-Setup/ANCMV2/aspnetcoremodulev2.wxs +++ b/src/Installers/Windows/AspNetCoreModule-Setup/ANCMV2/aspnetcoremodulev2.wxs @@ -85,7 +85,7 @@ - + @@ -144,36 +144,102 @@ - - + + + + + + + + + + + + + + + + + + + + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + - + @@ -215,68 +281,28 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - @@ -297,7 +323,11 @@ AspNetCoreModuleV2 + + AspNetCoreModuleV2Dll.forwarder + AspNetCoreModuleV2Dll + @@ -309,6 +339,7 @@ + WWW Server @@ -316,9 +347,14 @@ ANCM 65536 AncmMofFile + + AspNetCoreModuleV2.forwarder + AspNetCoreModuleV2 + + - diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/all.cmd b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/all.cmd new file mode 100644 index 000000000000..b9152822828e --- /dev/null +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/all.cmd @@ -0,0 +1,2 @@ +call %1 -host_arch=x64 -arch=arm64 -no_logo +call build.cmd %2 %3 diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_arm64.def b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_arm64.def new file mode 100644 index 000000000000..a4e417b6374d --- /dev/null +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_arm64.def @@ -0,0 +1,2 @@ +EXPORTS + RegisterModule = aspnetcorev2_arm64.RegisterModule diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_outofprocess_arm64.def b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_outofprocess_arm64.def new file mode 100644 index 000000000000..19c2607099fd --- /dev/null +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_outofprocess_arm64.def @@ -0,0 +1,2 @@ +EXPORTS + CreateApplication = aspnetcorev2_outofprocess_arm64.CreateApplication diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_outofprocess_x64.def b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_outofprocess_x64.def new file mode 100644 index 000000000000..709c7f2c5f1f --- /dev/null +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_outofprocess_x64.def @@ -0,0 +1,2 @@ +EXPORTS + CreateApplication = aspnetcorev2_outofprocess_x64.CreateApplication diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_x64.def b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_x64.def new file mode 100644 index 000000000000..10155d5a3c14 --- /dev/null +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/aspnetcorev2_x64.def @@ -0,0 +1,2 @@ +EXPORTS + RegisterModule = aspnetcorev2_x64.RegisterModule diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.cmd b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.cmd new file mode 100644 index 000000000000..3fc10c7d8ae1 --- /dev/null +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.cmd @@ -0,0 +1,18 @@ +SET objDir=%1 +SET binDir=%2 + +cl /nologo /c /Fo%objDir%\aspnetcorev2_arm64.obj empty.cpp +cl /nologo /c /arm64EC /Fo%objDir%\aspnetcorev2_x64.obj empty.cpp + +link /lib /nologo /machine:arm64 /def:aspnetcorev2_arm64.def /out:%objDir%\aspnetcorev2_arm64.lib +link /lib /nologo /machine:x64 /def:aspnetcorev2_x64.def /out:%objDir%\aspnetcorev2_x64.lib + +link /dll /nologo /noentry /machine:arm64x /defArm64Native:aspnetcorev2_arm64.def /def:aspnetcorev2_x64.def %objDir%\aspnetcorev2_arm64.obj %objDir%\aspnetcorev2_x64.obj /out:%binDir%\aspnetcorev2.dll %objDir%\aspnetcorev2_arm64.lib %objDir%\aspnetcorev2_x64.lib + +cl /nologo /nologo /c /Fo%objDir%\aspnetcorev2_outofprocess_arm64.obj empty.cpp +cl /nologo /nologo /c /arm64EC /Fo%objDir%\aspnetcorev2_outofprocess_x64.obj empty.cpp + +link /lib /nologo /machine:arm64 /def:aspnetcorev2_outofprocess_arm64.def /out:%objDir%\aspnetcorev2_outofprocess_arm64.lib +link /lib /machine:x64 /def:aspnetcorev2_outofprocess_x64.def /out:%objDir%\aspnetcorev2_outofprocess_x64.lib + +link /dll /nologo /noentry /machine:arm64x /defArm64Native:aspnetcorev2_outofprocess_arm64.def /def:aspnetcorev2_outofprocess_x64.def %objDir%\aspnetcorev2_outofprocess_arm64.obj %objDir%\aspnetcorev2_outofprocess_x64.obj /out:%binDir%\aspnetcorev2_outofprocess.dll %objDir%\aspnetcorev2_outofprocess_arm64.lib %objDir%\aspnetcorev2_outofprocess_x64.lib diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.proj b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.proj new file mode 100644 index 000000000000..9dd797b17129 --- /dev/null +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.proj @@ -0,0 +1,24 @@ + + + 17.0 + aspnetcorev2 + 10.0 + v143 + Unicode + false + + + + $(ArtifactsObjDir)\AspNetCoreModuleForwarders + $(ArtifactsBinDir)\AspNetCoreModuleForwarders + + + + "$(VSInstallDir)Common7\Tools\VsDevCmd" + + + + + + + diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/empty.cpp b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/empty.cpp new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp b/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp index fcd4205138c9..f47398a50c91 100644 --- a/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp +++ b/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp @@ -110,7 +110,7 @@ HandlerResolver::LoadRequestHandlerAssembly(const IHttpApplication &pApplication LOG_INFOF(L"Loading request handler: '%ls'", handlerDllPath.c_str()); - hRequestHandlerDll = LoadLibrary(handlerDllPath.c_str()); + hRequestHandlerDll = LoadLibraryEx(handlerDllPath.c_str(), 0, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR); RETURN_LAST_ERROR_IF_NULL(hRequestHandlerDll); if (preventUnload) From dc25fd76c04c15c7f9fff1100ab069193172835b Mon Sep 17 00:00:00 2001 From: Lex Li Date: Mon, 16 Dec 2024 23:39:07 -0500 Subject: [PATCH 2/4] Addressed some comments. --- .../Windows/AspNetCoreModule-Setup/Forwarders/build.cmd | 2 +- .../Windows/AspNetCoreModule-Setup/Forwarders/build.proj | 5 +---- .../IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp | 2 +- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.cmd b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.cmd index 3fc10c7d8ae1..a3ef34304dff 100644 --- a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.cmd +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.cmd @@ -13,6 +13,6 @@ cl /nologo /nologo /c /Fo%objDir%\aspnetcorev2_outofprocess_arm64.obj empty.cpp cl /nologo /nologo /c /arm64EC /Fo%objDir%\aspnetcorev2_outofprocess_x64.obj empty.cpp link /lib /nologo /machine:arm64 /def:aspnetcorev2_outofprocess_arm64.def /out:%objDir%\aspnetcorev2_outofprocess_arm64.lib -link /lib /machine:x64 /def:aspnetcorev2_outofprocess_x64.def /out:%objDir%\aspnetcorev2_outofprocess_x64.lib +link /lib /nologo /machine:x64 /def:aspnetcorev2_outofprocess_x64.def /out:%objDir%\aspnetcorev2_outofprocess_x64.lib link /dll /nologo /noentry /machine:arm64x /defArm64Native:aspnetcorev2_outofprocess_arm64.def /def:aspnetcorev2_outofprocess_x64.def %objDir%\aspnetcorev2_outofprocess_arm64.obj %objDir%\aspnetcorev2_outofprocess_x64.obj /out:%binDir%\aspnetcorev2_outofprocess.dll %objDir%\aspnetcorev2_outofprocess_arm64.lib %objDir%\aspnetcorev2_outofprocess_x64.lib diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.proj b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.proj index 9dd797b17129..cc058255fa7c 100644 --- a/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.proj +++ b/src/Installers/Windows/AspNetCoreModule-Setup/Forwarders/build.proj @@ -1,12 +1,9 @@ - 17.0 - aspnetcorev2 - 10.0 - v143 Unicode false + $(ArtifactsObjDir)\AspNetCoreModuleForwarders diff --git a/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp b/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp index f47398a50c91..c94fbb77a7ab 100644 --- a/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp +++ b/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp @@ -110,7 +110,7 @@ HandlerResolver::LoadRequestHandlerAssembly(const IHttpApplication &pApplication LOG_INFOF(L"Loading request handler: '%ls'", handlerDllPath.c_str()); - hRequestHandlerDll = LoadLibraryEx(handlerDllPath.c_str(), 0, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR); + hRequestHandlerDll = LoadLibraryEx(handlerDllPath.c_str(), nullptr, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR); RETURN_LAST_ERROR_IF_NULL(hRequestHandlerDll); if (preventUnload) From bf55cdcb8fca0d8c2a4ee58ec1a48f160bebd3d6 Mon Sep 17 00:00:00 2001 From: Lex Li Date: Thu, 9 Jan 2025 21:49:39 -0500 Subject: [PATCH 3/4] Added forwarder target to IIS Express installer. --- .../ANCMIISExpressV2/AncmIISExpressV2.wixproj | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Installers/Windows/AspNetCoreModule-Setup/ANCMIISExpressV2/AncmIISExpressV2.wixproj b/src/Installers/Windows/AspNetCoreModule-Setup/ANCMIISExpressV2/AncmIISExpressV2.wixproj index 60e782886a35..4b7e16f9a211 100644 --- a/src/Installers/Windows/AspNetCoreModule-Setup/ANCMIISExpressV2/AncmIISExpressV2.wixproj +++ b/src/Installers/Windows/AspNetCoreModule-Setup/ANCMIISExpressV2/AncmIISExpressV2.wixproj @@ -94,4 +94,8 @@ '$(PackageIconFullPath)' ^ '$(PackageLicenseExpression)' " /> + + + + From 7cd9700626fcccc3a52cc9f89be504c0c2caf989 Mon Sep 17 00:00:00 2001 From: Lex Li Date: Fri, 7 Feb 2025 19:00:20 -0500 Subject: [PATCH 4/4] Reverted to LoadLibrary. --- .../IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp b/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp index c94fbb77a7ab..fcd4205138c9 100644 --- a/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp +++ b/src/Servers/IIS/AspNetCoreModuleV2/AspNetCore/HandlerResolver.cpp @@ -110,7 +110,7 @@ HandlerResolver::LoadRequestHandlerAssembly(const IHttpApplication &pApplication LOG_INFOF(L"Loading request handler: '%ls'", handlerDllPath.c_str()); - hRequestHandlerDll = LoadLibraryEx(handlerDllPath.c_str(), nullptr, LOAD_LIBRARY_SEARCH_DEFAULT_DIRS | LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR); + hRequestHandlerDll = LoadLibrary(handlerDllPath.c_str()); RETURN_LAST_ERROR_IF_NULL(hRequestHandlerDll); if (preventUnload)