Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installing newer Microsoft.AspNetCore.App without same Microsoft.NETCore.App breaks FX resolution #90096

Closed
antmeehan opened this issue Aug 7, 2023 · 7 comments

Comments

@antmeehan
Copy link
Contributor

Description

If you explicitly specify a RuntimeFrameworkVersion with a RollForward strategy for a Microsoft.NET.Sdk.Web app, then it breaks if you install a newer version of Microsoft.AspNetCore.App (eg. 7.0.9) but don't also install the corresponding Microsoft.NETCore.App framework.

Reproduction Steps

  1. On a machine, install Microsoft.NETCore.App version 7.0.8 and Microsoft.AspNetCore.App version 7.0.8.
  2. Create a new web app project (dotnet new web)
  3. Set the RuntimeFrameworkVersion and RollForward properties:
        <RuntimeFrameworkVersion>7.0.0</RuntimeFrameworkVersion>
        <RollForward>LatestMinor</RollForward>
  1. Run the app and it launches successfully
  2. Install Microsoft.AspNetCore.App version 7.0.9
  3. Build and run the app again - it will fail to launch with You must install or update .NET to run this application.

Expected behavior

The roll forward behavior will match based on both required frameworks, ie continue to match on 7.0.8 in this case.

Actual behavior

Here is the output with COREHOST_TRACE=1 configured:

Tracing enabled @ Mon Aug  7 14:18:47 2023 GMT
--- Invoked apphost [version: 7.0.0, commit hash: d099f075e45d2aa6007a22b71b45a08758559f80] main = {
C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.exe
}
Redirecting errors to custom writer.
The managed DLL bound to this executable is: 'DotNetRuntimeVersion.Api.dll'
Looking for architecture-specific registry value in 'HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\InstallLocation'.
Found registered install location 'C:\Program Files\dotnet\'.
Using global installation location [C:\Program Files\dotnet\] as runtime location.
Reading fx resolver directory=[C:\Program Files\dotnet\host\fxr]
Considering fxr version=[7.0.8]...
Detected latest fxr version=[C:\Program Files\dotnet\host\fxr\7.0.8]...
Resolved fxr [C:\Program Files\dotnet\host\fxr\7.0.8\hostfxr.dll]...
Loaded library from C:\Program Files\dotnet\host\fxr\7.0.8\hostfxr.dll
Invoking fx resolver [C:\Program Files\dotnet\host\fxr\7.0.8\hostfxr.dll] hostfxr_main_startupinfo
Host path: [C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.exe]
Dotnet path: [C:\Program Files\dotnet\]
App path: [C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.dll]
Tracing enabled @ Mon Aug  7 14:18:47 2023 GMT
--- Invoked hostfxr_main_startupinfo [commit hash: 5b20af47d99620150c53eaf5db8636fdf730b126]
Checking if CoreCLR path exists=[C:\Program Files\dotnet\coreclr.dll]
--- Executing in a native executable mode...
Using dotnet root path [C:\Program Files\dotnet\]
App runtimeconfig.json from [C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.dll]
Runtime config is cfg=C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.json dev=C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.dev.json
Attempting to read runtime config: C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.json
Attempting to read dev runtime config: C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.dev.json
Runtime config [C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.json] is valid=[1]
--- The specified framework 'Microsoft.NETCore.App', version '7.0.0', apply_patches=1, version_compatibility_range=minor is compatible with the previously referenced version '7.0.0'.
--- Resolving FX directory, name 'Microsoft.NETCore.App' version '7.0.0'
Searching FX directory in [C:\Program Files\dotnet]
Attempting FX roll forward starting from version='[7.0.0]', apply_patches=1, version_compatibility_range=minor, roll_to_highest_version=1, prefer_release=1
'Roll forward' enabled with version_compatibility_range [minor]. Looking for the highest release greater than or equal version to [7.0.0]
Found version [7.0.8]
Applying patch roll forward from [7.0.8] on release only
Inspecting version... [7.0.8]
Changing Selected FX version from [] to [C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8]
Chose FX version [C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8]
Runtime config is cfg=C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.json dev=C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.dev.json
Attempting to read runtime config: C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.json
Attempting to read dev runtime config: C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.dev.json
Runtime config [C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.json] is valid=[1]
--- The specified framework 'Microsoft.AspNetCore.App', version '7.0.0', apply_patches=1, version_compatibility_range=minor is compatible with the previously referenced version '7.0.0'.
--- Resolving FX directory, name 'Microsoft.AspNetCore.App' version '7.0.0'
Searching FX directory in [C:\Program Files\dotnet]
Attempting FX roll forward starting from version='[7.0.0]', apply_patches=1, version_compatibility_range=minor, roll_to_highest_version=1, prefer_release=1
'Roll forward' enabled with version_compatibility_range [minor]. Looking for the highest release greater than or equal version to [7.0.0]
Found version [7.0.9]
Applying patch roll forward from [7.0.9] on release only
Inspecting version... [7.0.8]
Inspecting version... [7.0.9]
Changing Selected FX version from [] to [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9]
Chose FX version [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9]
Runtime config is cfg=C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.json dev=C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.dev.json
Attempting to read runtime config: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.json
Attempting to read dev runtime config: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.dev.json
Runtime config [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.json] is valid=[1]
--- The specified framework 'Microsoft.NETCore.App', version '7.0.0', apply_patches=1, version_compatibility_range=minor is compatible with the previously referenced version '7.0.9'.
--- Restarting all framework resolution because the previously resolved framework 'Microsoft.NETCore.App', version '7.0.0' must be re-resolved with the new version '7.0.9', apply_patches=1, version_compatibility_range=patch, roll_to_highest_version=1 .
--- The specified framework 'Microsoft.NETCore.App', version '7.0.0', apply_patches=1, version_compatibility_range=minor is compatible with the previously referenced version '7.0.9'.
--- Resolving FX directory, name 'Microsoft.NETCore.App' version '7.0.9'
Searching FX directory in [C:\Program Files\dotnet]
Attempting FX roll forward starting from version='[7.0.9]', apply_patches=1, version_compatibility_range=patch, roll_to_highest_version=1, prefer_release=1
'Roll forward' enabled with version_compatibility_range [patch]. Looking for the lowest release greater than or equal version to [7.0.9]
No match greater than or equal to [7.0.9] found.
'Roll forward' enabled with version_compatibility_range [patch]. Looking for the lowest release/pre-release greater than or equal version to [7.0.9]
No match greater than or equal to [7.0.9] found.
Framework reference didn't resolve to any available version.
It was not possible to find any compatible framework version
You must install or update .NET to run this application.

App: C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.exe
Architecture: x64
You must install or update .NET to run this application.

App: C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.exe
Architecture: x64
Gathering FX locations in [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Found FX version [7.0.8]
Framework: 'Microsoft.NETCore.App', version '7.0.9' (x64)
.NET location: C:\Program Files\dotnet\

The following frameworks were found:
  7.0.8 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Learn about framework resolution:
https://aka.ms/dotnet/app-launch-failed

To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=7.0.9&arch=x64&rid=win10-x64

Regression?

Not sure

Known Workarounds

Install matching Microsoft.NETCore.App version. There could be some time between where any launching of new processes won't work until this is done? (Unless there is an atomic way to do both?)

Configuration

.NET 7
OS Name: Microsoft Windows 11 Enterprise
OS Version: 10.0.22621 N/A Build 22621

Other information

No response

@ghost ghost added the untriaged New issue has not been triaged by the area owner label Aug 7, 2023
@ghost
Copy link

ghost commented Aug 7, 2023

Tagging subscribers to this area: @vitek-karas, @agocke, @VSadov
See info in area-owners.md if you want to be subscribed.

Issue Details

Description

If you explicitly specify a RuntimeFrameworkVersion with a RollForward strategy for a Microsoft.NET.Sdk.Web app, then it breaks if you install a newer version of Microsoft.AspNetCore.App (eg. 7.0.9) but don't also install the corresponding Microsoft.NETCore.App framework.

Reproduction Steps

  1. On a machine, install Microsoft.NETCore.App version 7.0.8 and Microsoft.AspNetCore.App version 7.0.8.
  2. Create a new web app project (dotnet new web)
  3. Set the RuntimeFrameworkVersion and RollForward properties:
        <RuntimeFrameworkVersion>7.0.0</RuntimeFrameworkVersion>
        <RollForward>LatestMinor</RollForward>
  1. Run the app and it launches successfully
  2. Install Microsoft.AspNetCore.App version 7.0.9
  3. Build and run the app again - it will fail to launch with You must install or update .NET to run this application.

Expected behavior

The roll forward behavior will match based on both required frameworks, ie continue to match on 7.0.8 in this case.

Actual behavior

Here is the output with COREHOST_TRACE=1 configured:

Tracing enabled @ Mon Aug  7 14:18:47 2023 GMT
--- Invoked apphost [version: 7.0.0, commit hash: d099f075e45d2aa6007a22b71b45a08758559f80] main = {
C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.exe
}
Redirecting errors to custom writer.
The managed DLL bound to this executable is: 'DotNetRuntimeVersion.Api.dll'
Looking for architecture-specific registry value in 'HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x64\InstallLocation'.
Found registered install location 'C:\Program Files\dotnet\'.
Using global installation location [C:\Program Files\dotnet\] as runtime location.
Reading fx resolver directory=[C:\Program Files\dotnet\host\fxr]
Considering fxr version=[7.0.8]...
Detected latest fxr version=[C:\Program Files\dotnet\host\fxr\7.0.8]...
Resolved fxr [C:\Program Files\dotnet\host\fxr\7.0.8\hostfxr.dll]...
Loaded library from C:\Program Files\dotnet\host\fxr\7.0.8\hostfxr.dll
Invoking fx resolver [C:\Program Files\dotnet\host\fxr\7.0.8\hostfxr.dll] hostfxr_main_startupinfo
Host path: [C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.exe]
Dotnet path: [C:\Program Files\dotnet\]
App path: [C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.dll]
Tracing enabled @ Mon Aug  7 14:18:47 2023 GMT
--- Invoked hostfxr_main_startupinfo [commit hash: 5b20af47d99620150c53eaf5db8636fdf730b126]
Checking if CoreCLR path exists=[C:\Program Files\dotnet\coreclr.dll]
--- Executing in a native executable mode...
Using dotnet root path [C:\Program Files\dotnet\]
App runtimeconfig.json from [C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.dll]
Runtime config is cfg=C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.json dev=C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.dev.json
Attempting to read runtime config: C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.json
Attempting to read dev runtime config: C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.dev.json
Runtime config [C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.runtimeconfig.json] is valid=[1]
--- The specified framework 'Microsoft.NETCore.App', version '7.0.0', apply_patches=1, version_compatibility_range=minor is compatible with the previously referenced version '7.0.0'.
--- Resolving FX directory, name 'Microsoft.NETCore.App' version '7.0.0'
Searching FX directory in [C:\Program Files\dotnet]
Attempting FX roll forward starting from version='[7.0.0]', apply_patches=1, version_compatibility_range=minor, roll_to_highest_version=1, prefer_release=1
'Roll forward' enabled with version_compatibility_range [minor]. Looking for the highest release greater than or equal version to [7.0.0]
Found version [7.0.8]
Applying patch roll forward from [7.0.8] on release only
Inspecting version... [7.0.8]
Changing Selected FX version from [] to [C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8]
Chose FX version [C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8]
Runtime config is cfg=C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.json dev=C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.dev.json
Attempting to read runtime config: C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.json
Attempting to read dev runtime config: C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.dev.json
Runtime config [C:\Program Files\dotnet\shared\Microsoft.NETCore.App\7.0.8\Microsoft.NETCore.App.runtimeconfig.json] is valid=[1]
--- The specified framework 'Microsoft.AspNetCore.App', version '7.0.0', apply_patches=1, version_compatibility_range=minor is compatible with the previously referenced version '7.0.0'.
--- Resolving FX directory, name 'Microsoft.AspNetCore.App' version '7.0.0'
Searching FX directory in [C:\Program Files\dotnet]
Attempting FX roll forward starting from version='[7.0.0]', apply_patches=1, version_compatibility_range=minor, roll_to_highest_version=1, prefer_release=1
'Roll forward' enabled with version_compatibility_range [minor]. Looking for the highest release greater than or equal version to [7.0.0]
Found version [7.0.9]
Applying patch roll forward from [7.0.9] on release only
Inspecting version... [7.0.8]
Inspecting version... [7.0.9]
Changing Selected FX version from [] to [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9]
Chose FX version [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9]
Runtime config is cfg=C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.json dev=C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.dev.json
Attempting to read runtime config: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.json
Attempting to read dev runtime config: C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.dev.json
Runtime config [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App\7.0.9\Microsoft.AspNetCore.App.runtimeconfig.json] is valid=[1]
--- The specified framework 'Microsoft.NETCore.App', version '7.0.0', apply_patches=1, version_compatibility_range=minor is compatible with the previously referenced version '7.0.9'.
--- Restarting all framework resolution because the previously resolved framework 'Microsoft.NETCore.App', version '7.0.0' must be re-resolved with the new version '7.0.9', apply_patches=1, version_compatibility_range=patch, roll_to_highest_version=1 .
--- The specified framework 'Microsoft.NETCore.App', version '7.0.0', apply_patches=1, version_compatibility_range=minor is compatible with the previously referenced version '7.0.9'.
--- Resolving FX directory, name 'Microsoft.NETCore.App' version '7.0.9'
Searching FX directory in [C:\Program Files\dotnet]
Attempting FX roll forward starting from version='[7.0.9]', apply_patches=1, version_compatibility_range=patch, roll_to_highest_version=1, prefer_release=1
'Roll forward' enabled with version_compatibility_range [patch]. Looking for the lowest release greater than or equal version to [7.0.9]
No match greater than or equal to [7.0.9] found.
'Roll forward' enabled with version_compatibility_range [patch]. Looking for the lowest release/pre-release greater than or equal version to [7.0.9]
No match greater than or equal to [7.0.9] found.
Framework reference didn't resolve to any available version.
It was not possible to find any compatible framework version
You must install or update .NET to run this application.

App: C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.exe
Architecture: x64
You must install or update .NET to run this application.

App: C:\ProgData\git\github\antmeehan\DotNetRuntimeVersion\DotNetRuntimeVersion\DotNetRuntimeVersion.Api\bin\Debug\net7.0\DotNetRuntimeVersion.Api.exe
Architecture: x64
Gathering FX locations in [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Found FX version [7.0.8]
Framework: 'Microsoft.NETCore.App', version '7.0.9' (x64)
.NET location: C:\Program Files\dotnet\

The following frameworks were found:
  7.0.8 at [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]

Learn about framework resolution:
https://aka.ms/dotnet/app-launch-failed

To install missing framework, download:
https://aka.ms/dotnet-core-applaunch?framework=Microsoft.NETCore.App&framework_version=7.0.9&arch=x64&rid=win10-x64

Regression?

Not sure

Known Workarounds

Install matching Microsoft.NETCore.App version. There could be some time between where any launching of new processes won't work until this is done? (Unless there is an atomic way to do both?)

Configuration

.NET 7
OS Name: Microsoft Windows 11 Enterprise
OS Version: 10.0.22621 N/A Build 22621

Other information

No response

Author: antmeehan
Assignees: -
Labels:

area-Host

Milestone: -

@elinor-fung
Copy link
Member

I don't think the host should try to do any more complicated reconciliation of frameworks which rely another framework version (like going through all possible combinations of what is installed to see if something would work).

I think the solution should be on the installer side - we expect a framework to also install the corresponding version of any frameworks that it depends on. Unfortunately, ASP.NET Core installers do not do this right now - this has sometimes resulted in issues/confusion . @richlander filed an issue a while back to track that: dotnet/aspnetcore#49562

@richlander
Copy link
Member

richlander commented Aug 8, 2023

RuntimeFrameworkVersion wasn't built to enable this scenario, as suggested.

Can we back up? What is the scenario you are wanting to enable?

Is the issue that you wanted both frameworks updated when you installed ASP.NET Core 7.0.9? If so, then that other issue referenced is indeed the problem and we should focus on that.

@antmeehan
Copy link
Contributor Author

Thanks for the comments. The issue was that installing just ASP.NET Core 7.0.9 broke something that was working. And I went down a rabbit hole thinking I was targeting 7.0.9 somehow. (I learnt a lot about specifying SDKs though 😄). The RuntimeFrameworkVersion might even be a red herring as part of that investigation.

Making the ASP.NET Core installer install both frameworks would fix the issue 👍

I'm still unsure why the FX resolver does the second loop that convinces it to look for 7.0.9, (when it was happy with 7.0.8?), but my C++ is pretty poor. 😆

@richlander
Copy link
Member

Perfect. That helps a bunch ...

Making the ASP.NET Core installer install both frameworks would fix the issue

Agree.

@richlander
Copy link
Member

I'm closing this issue in favor of the other one.

@ghost ghost removed the untriaged New issue has not been triaged by the area owner label Aug 8, 2023
@vitek-karas
Copy link
Member

I'm still unsure why the FX resolver does the second loop that convinces it to look for 7.0.9, (when it was happy with 7.0.8?)

You specified LatestMinor so it loops over all versions finding the highest version which is still just a "Minor" version different from the one specified. So it will look for the highest version 7.x.x. The fact that it found 7.0.8 first doesn't really mean anything, that's just the order of directories returned by the file system. If you set roll forward to just Minor it should pick 7.0.8, since then it tries to find the closest match to the specified version.

@ghost ghost locked as resolved and limited conversation to collaborators Sep 14, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants