devicehost: stop re-signing and rely on MSIRMSHUTDOWN for file-in-use handling#40080
Conversation
687177b to
f49b24b
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the WSL MSI packaging/staging flow to stop re-signing wsldevicehost.dll and instead consume the already-signed binary directly from the Microsoft.WSL.DeviceHost NuGet package, while relying on Windows Installer’s Restart Manager behavior for in-use file replacement.
Changes:
- Bump
Microsoft.WSL.DeviceHostNuGet dependency to1.2.10-0. - Source
wsldevicehost.dlldirectly from the DeviceHost package output and remove the local CMake staging link + build-stage publish pattern entry. - Enable
MSIRMSHUTDOWN=1in the MSI to improve handling of file-in-use scenarios.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
packages.config |
Updates DeviceHost package version used by the build. |
msipackage/package.wix.in |
Switches the wsldevicehost.dll source path to the NuGet package output and enables MSIRMSHUTDOWN=1. |
CMakeLists.txt |
Removes the staging symlink creation for wsldevicehost.dll in the build output. |
.pipelines/build-stage.yml |
Stops publishing wsldevicehost.dll from the build-stage artifacts. |
| See: https://learn.microsoft.com/en-us/windows/win32/msi/msirmshutdown | ||
| --> | ||
| <Property Id="MSIRMSHUTDOWN" Value="0" Secure="yes" /> | ||
| <Property Id="MSIRMSHUTDOWN" Value="1" Secure="yes" /> | ||
| </Package> |
There was a problem hiding this comment.
MSIRMSHUTDOWN is now hard-coded to 1, but the preceding comment says this is only “during upgrade”. With the property set unconditionally at the package level it can also affect first-time installs/repairs. Either update the comment to match the new behavior, or conditionally set MSIRMSHUTDOWN=1 only for upgrade scenarios (e.g., when WIX_UPGRADE_DETECTED/UPGRADINGPRODUCTCODE indicates an upgrade).
|
Overriding to get a release build sooner. The wslc test passed a full testpass was done on master |
Cherry-pick of #40075 onto feature/wsl-for-apps.
This change: