In our solution, we have three relevant projects to this issue. Below is a diagram that displays them:
Project A runs tests on C, which implements the Flee nuget package. This package apparently supports both .NET Framework
and .NET Core
. When I examine the contents of the package directory in my local nuget cache, it has two different dlls: Flee.Net45.dll
and Flee.Standard20.dll
.
The problem is that when running the tests in A, the following error occurs for all tests relating to C:
System.IO.FileNotFoundException:
Could not load file or assembly Flee.NetStandard20, [...] The system cannot find the file specified.
The first thing I did was check the bin
folder: that's when I see that the Flee.Net45.dll
sitting there. Which seems to be correct, since the project A is using .NET Framework
. In the csproj
file for project A, the framework is set as: <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
.
To troubleshoot further, I set up a temporary xUnit Test Project (.NET Core)
(that's project B), and copied the relevant tests across. They all passed - and in the bin
folder, it showed Flee.NetStandard20.dll
, which is what I expected.
Question
When I run the tests in a project that targets .NET Framework
, why is it looking for Flee.Standard20.dll
at runtime? Does this look like an issue with the Flee
package? Or would it be a configuration issue in project A?