dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.26k stars 4.73k forks source link

[BUG] Version downgrade in .NET 8 for vcruntime140_cor3.dll leads to broken Microsoft Installers #101225

Open georg-eckert-zeiss opened 6 months ago

georg-eckert-zeiss commented 6 months ago

Description

Similar to #82518, but not quite the same. With .NET 6.0.29 the version of vcruntime140_cor3.dll has been raised to 14.38.33135.0. The same DLL in .NET 8.0.4 however is still on version 14.38.33130.0. If upgrading a self-contained app from a MSI to an application that uses .NET 8 I get errors in the Microsoft Installer installation.

Reproduction Steps

  1. Create a new application (e.g. dotnet new console -f net6.0)
  2. Create a global.json (e.g. dotnet new globaljson --sdk-version 6.0.)
  3. Publish the app as self-contained application (e.g. dotnet publish -c Release --self-contained true -r win-x64)
  4. Bundle the application as MSI file (e.g. use WiX toolset or skip this step for now)
  5. Repeat steps 1 to 4 for .NET 8.0 (-f net8.0 and --sdk-version 8.0.)

Expected behavior

The latest DLLs for .NET self contained builds will be deployed when installing using MSI if there is a previous installation using .NET 6.

Actual behavior

A downgrade is detected and the installation fails.

Regression?

See #82518 and #62218.

Known Workarounds

Use companions in Windows Installer / WiX toolset.

Configuration

No response

Other information

No response

NikolaMilosavljevic commented 5 months ago

[Triage] @ashnaga can you take a look? We're not really sure where this issue should go.