arcade icon indicating copy to clipboard operation
arcade copied to clipboard

Upgrade WIX toolchain from 3.14 to v4

Open ViktorHofer opened this issue 1 year ago • 2 comments

Arcade currently uses WIX 3.14 which is brought in via the Microsoft.Signed.Wix nuget transport package. We should consider updating to v4 as that includes some great benefits over the previous version: https://wixtoolset.org/docs/releasenotes/

Wix v4 also works with paths longer than 255 characters, something that we currently hit in the VMR builds which use "inner clones", i.e. for windowsdesktop: https://github.com/dotnet/source-build/issues/3799

cc @joeloff @jkoritzinsky

ViktorHofer avatar Dec 18 '23 18:12 ViktorHofer

@joeloff mentioned the lift from v3 to v4 might have some challenges that make it more expensive.

I read through the WIX issues that fixed the MAX_PATH problem - essentially it's fixed by v4 running on .NETCore instead of .NETFramework. IIRC we also enabled MAX_PATH on NetFx but you needed to opt-in. I wonder if we can make the right settings for the v3 wix tools to have them enable MAX_PATH in their NetFx process.

ericstj avatar Jan 04 '24 16:01 ericstj

Discussed this with @JeremyKuhne and he pointed me to https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation?tabs=registry

  • [x] needs a registry key, which should be set on our build machines and dev machines
  • [ ] needs an app manifest setting. Not sure how to do this without modifying the binary, it might be possible. We could load an extension into the process that does it through Win32 Activation context API 😈

https://learn.microsoft.com/en-us/dotnet/framework/migration-guide/retargeting/4.6.x#long-path-support

  • [ ] need to set a couple app context switches

ericstj avatar Jan 04 '24 19:01 ericstj

Is this now part of a larger epic that @joeloff is managing❔

dougbu avatar Mar 21 '24 22:03 dougbu