Skip to content

.NET 10 dotnet run does not respect DOTNET_ROOT variable #51693

@n00j

Description

@n00j

Describe the bug

Setting DOTNET_ROOT doesn't seem to affect all steps in dotnet run. It seem like the restore step works, but when it goes to run the application, it ignores the environment variable and uses a default path.

To Reproduce

I'm not sure how to reproduce this publicly. We have an odd setup with a number of symlinks between the sdk/runtime versions. But below is the output if i try to run a simple helloworld program.

DOTNET_ROOT=/bb/bin/dotnetsdk /bb/bin/dotnet run helloworld8.csproj          
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error You must install .NET to run this application.
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error 
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error App: /bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/bincore/csc
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error Architecture: x64
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error App host version: 10.0.0
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error .NET location: Not found
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error 
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error The following locations were searched:
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error   Application directory:
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error     /bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/bincore/
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error   Environment variable:
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error     DOTNET_ROOT = /bb/bin/package/d/dotnet-muxer/10.0.101.1-1+b20251111T19033819.devise/bin/dotnetsdk
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error 
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error Learn more:
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error https://aka.ms/dotnet/app-launch-failed
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error 
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error Download the .NET runtime:
/bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/Roslyn/Microsoft.CSharp.Core.targets(84,5): error https://aka.ms/dotnet-core-applaunch?missing_runtime=true&arch=x64&rid=linux-x64&os=rhel.8&apphost_version=10.0.0

You can see even with DOTNET_ROOT set, internally its pointing DOTNET_ROOT to another location.

Exceptions (if any)

Further technical details

details of dotnet --info

/bb/bin/dotnet --info .NET SDK: Version: 10.0.100 Commit: b0f34d51fc Workload version: 10.0.100-manifests.e3b0c442 MSBuild version: 18.0.2+b0f34d51f

Runtime Environment:
OS Name: rhel
OS Version: 8
OS Platform: Linux
RID: linux-x64
Base Path: /bb/bin/package/d/dotnet-sdk-10.0/10.0.101.1-1+b20251111T21474698.devise/bin/dotnetsdk/sdk/10.0.100/

.NET workloads installed:
There are no installed workloads to display.
Configured to use workload sets when installing new manifests.
No workload sets are installed. Run "dotnet workload restore" to install a workload set.

Host:
Version: 10.0.100
Architecture: x64
Commit: b0f34d51fc

.NET SDKs installed:
8.0.415 [/bb/bin/dotnetsdk/sdk]
10.0.100 [/bb/bin/dotnetsdk/sdk]

.NET runtimes installed:
Microsoft.AspNetCore.App 8.0.21 [/bb/bin/dotnetsdk/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 10.0.0 [/bb/bin/dotnetsdk/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 8.0.21 [/bb/bin/dotnetsdk/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 10.0.0 [/bb/bin/dotnetsdk/shared/Microsoft.NETCore.App]

Other architectures found:
None

Environment variables:
DOTNET_CLI_TELEMETRY_OPTOUT [1]
DOTNET_NUGET_SIGNATURE_VERIFICATION [false]
DOTNET_ROOT [/bb/bin/dotnetsdk]
DOTNET_ROOT_X64 [/bb/bin/dotnetsdk]
DOTNET_SKIP_FIRST_TIME_EXPERIENCE [1]

global.json file:
Not found

Learn more:
https://aka.ms/dotnet/info

Download .NET:
https://aka.ms/dotnet/download

- The IDE (VS / VS Code/ VS4Mac) you're running on, and its version

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions