Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
How do you fix 'Failed to load the dll hostfxr.dll' when starting an x86 .NET process in a test run via dotnet test?
How do you fix the error 'Failed to load the DLL hostfxr.dll' when running a .NET test executed via dotnet test and starting an x86 .NET application in the test?
I'm using .NET 8.
Failed to load the dll from [C:\Program Files\dotnet\host\fxr\8.0.4\hostfxr.dll], HRESULT: 0x800700C1
The library hostfxr.dll was found, but loading it from C:\Program Files\dotnet\host\fxr\8.0.4\hostfxr.dll failed
- Installing .NET prerequisites might help resolve this problem.
https://go.microsoft.com/fwlink/?linkid=798306
2 answers
The following users marked this post as Works for me:
| User | Comment | Date |
|---|---|---|
| riQQ | (no comment) | Oct 15, 2025 at 08:43 |
Remove
DOTNET_ROOTenvironment variable before process start
process.StartInfo.EnvironmentVariables.Remove("DOTNET_ROOT");
Another option is to use the x86 .NET SDK for running the tests:
& "C:\Program Files (x86)\dotnet\dotnet" test
Source: https://github.com/dotnet/sdk/issues/22647#issuecomment-973898754
0 comment threads
To fix this, you must ensure that the dotnet test runner executes as a 32-bit process to match the architecture of the application you are testing.
You have 2 solutions
-
Use the
--archFlag (Recommended for CI/CD)Run your test command with the
--arch x86flag:dotnet test --arch x86This flag forces the .NET host to use the 32-bit SDK and runtime (typically located in C:\Program Files (x86)\dotnet\), which can then correctly load and execute your x86 application.
-
Configure the Test Project (.csproj)
For a more permanent solution that works directly within Visual Studio or without needing a special command, you can configure your test project to always target the x86 platform.
Hope this helps!

0 comment threads