I am running Visual Studio 2017 15.6.3.
I have a .NET Standard 2.0 DLL project which contains Request and Response classes for use with ServiceStack. The Request classes implement IReturn<>.
I have a .NET Core 2.0 console EXE project which references the .NET Standard DLL. This EXE uses a ServiceStack JsonServiceClient to send requests to a ServiceStack service. It compiles and works fine.
I added a .NET Framework 4.6.1 console EXE project which also references the .NET Standard 2.0 DLL. It has to be a Framework app because it references other DLLs which are not compatible with Core or Standard. This EXE uses a ServiceStack JsonServiceClient to send requests to a ServiceStack service exactly like the .NET Core EXE, but this program will not compile. Framework 4.6.1 is supposed to support .NET Standard 2.0 DLLs, but for some reason it has a conflict with the IReturn<> interface.
var extentRequest = new ExtentRequest { ... };
using (var client = new JsonServiceClient(baseUrl))
{
return client.Post(extentRequest);
}
The error returned is: "The type 'IReturn<>' is defined in an assembly that is not referenced. You must add a reference to assembly 'ServiceStack.Interfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null'."
I can't think of any reason why it isn't working:
- When I look at the list of References for the project, I see ServiceStack.Interfaces and its Properties say it is version 5.0.0.0.
- I can use "Peek Definition" within the Framework executable project code and work my way through the chain of inheritance to find IReturn<> so it knows the type.
- All three projects use ServiceStack version 5.0.2 acquired with NuGet.
- All projects are configured and compiled for x64.
I assume the problem is some sort of mismatch between Framework and Standard versions. Can anyone tell me why I'm getting this error?