dotnet / cli-lab

A guided tool will be provided to enable the controlled clean up of a system such that only the desired versions of the Runtime and SDKs remain.
MIT License
602 stars 55 forks source link

.msi quietly fails on windows-2019 github action #275

Open SunSerega opened 7 months ago

SunSerega commented 7 months ago

For compatibility of an app, I need to test certain actions in a .Net Framework 4.0-only environment.

I initially tried to just install .Net Framework 4.0 on it's own:

choco install dotnet4.0 -y

But it seems types from newer versions of .Net are still available (from reflection in my case specifically). For now, I still hope it's not .Net Framework 4.8 (which I have no idea how to uninstall automatically) and only some .Net core versions:

dotnet --list-runtimes

Microsoft.AspNetCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.25 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.14 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.25 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.14 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.25 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.14 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

dotnet --list-sdks

6.0.125 [C:\Program Files\dotnet\sdk]
6.0.203 [C:\Program Files\dotnet\sdk]
6.0.320 [C:\Program Files\dotnet\sdk]
6.0.417 [C:\Program Files\dotnet\sdk]
7.0.114 [C:\Program Files\dotnet\sdk]
7.0.203 [C:\Program Files\dotnet\sdk]
7.0.311 [C:\Program Files\dotnet\sdk]
7.0.404 [C:\Program Files\dotnet\sdk]

So I tried to use this tool:

                curl -o "temp.msi" "https://github.com/dotnet/cli-lab/releases/download/1.6.0/dotnet-core-uninstall-1.6.0.msi"
                temp.msi /quiet /L*v temp.log
                type temp.log
                del /S temp.msi

                "C:\Program Files (x86)\dotnet-core-uninstall\dotnet-core-uninstall.exe" remove --all --sdk --force

                where dotnet

But dotnet-core-uninstall.exe is not created at the same path, as running that same command locally from cmd.

Tried to attach the log file to the installer - but don't see anything useful:

=== Verbose logging started: 12/11/2023  14:17:59  Build type: SHIP UNICODE 5.00.10011.00  Calling process: C:\Windows\System32\msiexec.exe ===
MSI (c) (18:38) [14:17:59:989]: Resetting cached policy values
MSI (c) (18:38) [14:17:59:989]: Machine policy value 'Debug' is 0
MSI (c) (18:38) [14:17:59:989]: ******* RunEngine:
           ******* Product: D:\a\pascalabcnet\pascalabcnet\temp.msi
           ******* Action: 
           ******* CommandLine: **********
MSI (c) (18:38) [14:17:59:989]: Client-side and UI is none or basic: Running entire install on the server.
MSI (c) (18:38) [14:17:59:989]: Grabbed execution mutex.
MSI (c) (18:38) [14:18:00:036]: Cloaking enabled.
MSI (c) (18:38) [14:18:00:036]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (18:38) [14:18:00:036]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (6C:7C) [14:18:00:067]: Running installation inside multi-package transaction D:\a\pascalabcnet\pascalabcnet\temp.msi
MSI (s) (6C:7C) [14:18:00:067]: Grabbed execution mutex.
MSI (s) (6C:98) [14:18:00:067]: Resetting cached policy values
MSI (s) (6C:98) [14:18:00:067]: Machine policy value 'Debug' is 0
MSI (s) (6C:98) [14:18:00:067]: ******* RunEngine:
           ******* Product: D:\a\pascalabcnet\pascalabcnet\temp.msi
           ******* Action: 
           ******* CommandLine: **********
MSI (s) (6C:98) [14:18:00:067]: Note: 1: 2203 2: D:\a\pascalabcnet\pascalabcnet\temp.msi 3: -2147286960 
MSI (s) (6C:98) [14:18:00:083]: MainEngineThread is returning 1620
MSI (s) (6C:7C) [14:18:00:083]: User policy value 'DisableRollback' is 0
MSI (s) (6C:7C) [14:18:00:083]: Machine policy value 'DisableRollback' is 0
MSI (s) (6C:7C) [14:18:00:083]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (6C:7C) [14:18:00:098]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2 
MSI (s) (6C:7C) [14:18:00:098]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2 
MSI (s) (6C:7C) [14:18:00:114]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied.  Counter after decrement: -1
MSI (c) (18:38) [14:18:00:114]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied.  Counter after decrement: -1
MSI (c) (18:38) [14:18:00:114]: MainEngineThread is returning 1620
=== Verbose logging stopped: 12/11/2023  14:18:00 ===
Deleted file - D:\a\pascalabcnet\pascalabcnet\temp.msi
The system cannot find the path specified.
C:\Program Files\dotnet\dotnet.exe