dotnet / sdk

Core functionality needed to create .NET Core projects, that is shared between Visual Studio and CLI
https://dot.net/core
MIT License
2.7k stars 1.06k forks source link

In Debian ARM64, `dotnet test` does not work #43790

Open Frederisk opened 3 weeks ago

Frederisk commented 3 weeks ago

Describe the bug

In Debian ARM64, executing dotnet test on any project will report an error: Could not find 'dotnet' host for the 'ARM64' architecture.

To Reproduce

Build an arbitrary test major in Debian ARM64 and try running it.

> dotnet new nunit
> dotnet restore
> dotnet test
Determining projects to restore...
  All projects are up-to-date for restore.
  te4 -> /root/repos/te4/bin/Debug/net7.0/te4.dll
Test run for /root/repos/te4/bin/Debug/net7.0/te4.dll (.NETCoreApp,Version=v7.0)
Microsoft (R) Test Execution Command Line Tool Version 17.7.2 (arm64)
Copyright (c) Microsoft Corporation.  All rights reserved.

Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Could not find 'dotnet' host for the 'ARM64' architecture.

You can resolve the problem by installing the 'ARM64' .NET.

The specified framework can be found at:
  - https://aka.ms/dotnet-download

Test Run Aborted.

Further technical details

I tested dotnet 8 and dotnet 7, and they all have this problem.

.NET SDK:
 Version:   7.0.410
 Commit:    8b4848c3b2

Runtime Environment:
 OS Name:     debian
 OS Version:
 OS Platform: Linux
 RID:         debian-arm64
 Base Path:   /root/.dotnet/sdk/7.0.410/

Host:
  Version:      7.0.20
  Architecture: arm64
  Commit:       0fb6ac59fb

.NET SDKs installed:
  7.0.410 [/root/.dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 7.0.20 [/root/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.20 [/root/.dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None
                                                              Environment variables:                                          DOTNET_ROOT       [/root/.dotnet]                                                                                         global.json file:                                               Not found
.NET SDK:
 Version:           8.0.402
 Commit:            70aa751718
 Workload version:  8.0.400-manifests.b6724b7a
 MSBuild version:   17.11.4+37eb419ad

Runtime Environment:
 OS Name:     debian
 OS Version:
 OS Platform: Linux
 RID:         linux-arm64
 Base Path:   /root/.dotnet/sdk/8.0.402/

.NET workloads installed:
Configured to use loose manifests when installing new manifests.
There are no installed workloads to display.

Host:
  Version:      8.0.8
  Architecture: arm64                                           Commit:       08338fcaa5                                                                                                  .NET SDKs installed:                                            8.0.402 [/root/.dotnet/sdk]

.NET runtimes installed:                                        Microsoft.AspNetCore.App 8.0.8 [/root/.dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.8 [/root/.dotnet/shared/Microsoft.NETCore.App]
                                                              Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/root/.dotnet]

global.json file:                                               Not found

uname -a:

Linux localhost 5.4.210-qgki-ga5e066e94074 #1 SMP PREEMPT Fri Aug 25 18:36:19 JST 2023 aarch64 GNU/Linux

cat /etc/os-release:

PRETTY_NAME="Debian GNU/Linux trixie/sid"
NAME="Debian GNU/Linux"
VERSION_CODENAME=trixie
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

By the way, I used dotnet-install.sh to install dotnet.

# install dotnet 8
> ./dotnet-install.sh
# install dotnet 7
> ./dotnet-install.sh -c STS
Frederisk commented 3 weeks ago

As a side note, commands like dotnet run all work fine.