-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Installer/finalizer in c# #44611
base: main
Are you sure you want to change the base?
Installer/finalizer in c# #44611
Conversation
91258b6
to
42e2009
Compare
7cabc19
to
8abb521
Compare
What is the size of the EXE? We need to ensure that the static SDK does not exceed 250MB - that's historically been a tripwire when we see a noticeable increase in download failures, especially outside North America. It would be good to ensure that the logging mechanism preserves the structure logging that dutil provides - we chose the C/dutil implementation specifically for size and the logging. The other obstacle is the WiX version. There are very hard requirements about the copy we're using currently and until we wrap up the v5 migration work, we'll probably have to sit on this PR. As for the pending reboot change - we don't care about what the registry says too much. What the finalizer is doing is passing the exit code from the MSI packages back to the bundle engine if it removed any of them. Do appreciate your initiative - we've talked about moving this to managed single file executable before |
The AOT-published finalizer.exe binary for win-x64 comes in at 2MB. This setup skips the need for C++ and CMake in dotnet/sdk, making it way easier to debug and maintain the C# code, just like the rest of the repo. Plus, you can use dotnet run for quick local testing, which keeps the workflow nice and simple. The version limitations are a bit of a drawback, but this is just an initial idea. We can fine-tune it down the line once those version issues are sorted out. |
This sounds very promising, thank you |
@joeloff if you like to test this branch, download https://www.nuget.org/api/v2/package/WixToolset.Dtf.WindowsInstaller/4.0.6 at |
cbc70e9
to
d178e49
Compare
b25c785
to
7f5d417
Compare
@kasperk81 thank you for all the updates. I was out yesterday. Probably one or two more things to address. I'll try and do another pass later tonight |
new error after merge from main
@ViktorHofer any recent work that might explain it? |
No idea. Given that this is an ilcompiler error, I would ask @MichalStrehovsky or @jkoritzinsky. |
My guess is that now you need a live ILCompiler instead of using the LKG one. |
This is from dotnet/runtime#109988. Looks like we're in a situation where CoreLib is newer than the compiler. CoreLib must version with the compiler. These two out of sync would kind of work most of the time, but there would be updates from dotnet/runtime when it would break. So this is a good catch. We need to use CoreLib that is in sync with the compiler. So either use live compiler, or a runtime pack that is the same version as the LKG compiler. |
I've put out a PR at #45973 that should change the SDK and installer builds to use a live ILC (and crossgen2 while I'm at it) |
7fa3b43
to
6512457
Compare
6512457
to
c0355d9
Compare
@jkoritzinsky that fixed windows build. resolved merge conflict @joeloff can you run the test? |
ping |
just FYI, @joeloff is currently unavailable. cc @marcpopMSFT |
@/joeloff is available now but I think he has a large backlog of stuff |
@jkoritzinsky new error after merging main
it was building on Jan 19 #44611 (comment) |
Co-authored-by: Jeremy Koritzinsky <jkoritzinsky@gmail.com>
TODOs:
- [ ] getWixToolset.Dtf.WindowsInstaller
(https://www.nuget.org/packages/WixToolset.Dtf.WindowsInstaller/4.0.6) uploaded to one of dotnet nuget feed and undo NuGet.config change<FinalizerExe>$(ArtifactsDir)bin/finalizer/$(Architecture)/$(Configuration)/bin/finalizer.exe</FinalizerExe>
inGenerateMSIs.targets
fix #43876