当我仅使用Core版本的ServiceStack组件时,如何解决ServiceStack Framework / Core冲突

时间:2018-05-04 15:20:02

标签: .net-core servicestack

我正在使用Visual Studio 2017.我有一个框架4.6.1控制台应用程序引用ServiceStack.Client.Core v5.1.0。它还在同一解决方案中引用了其他四个Standard 2.0 DLL项目,这些项目也引用了ServiceStack。*。Core v5.1.0程序集。所有ServiceStack软件包都是使用NuGet下载的。

我的控制台应用无法编译。尝试实例化JsonServiceClient的每行代码都会引发几个编译时错误:

using (var client = new JsonServiceClient(AppSettings.BaseUri))

The type 'IMessageProducer' 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'.
The type 'IJsonServiceClient' 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'.
The type 'IServiceClient' 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'.
....

此解决方案中的任何项目都不会引用非Core 5.1.0 ServiceStack程序包。那么为什么我会收到错误,要求我引用较旧的非Core ServiceStack程序集?

ADDENDUM:如果我将所有ServiceStack软件包还原为5.0.2版,那么它会编译!

(可能与previous question相关)

1 个答案:

答案 0 :(得分:0)

这听起来像是一个依赖/引用问题,如果您运行的是.NET Core App on the .NET Framework,则只能引用.Core NuGet包。没有足够的信息可以重现问题,因此我首先要查看清除/bin/obj文件夹并清除NuGet缓存以返回空状态,例如:

$ nuget locals all -clear

如果这不起作用,请使用现有的ASP.NET Core on .NET Framework Templates之一,以便从可用的配置开始。

具有最小依赖项的项目是selfhost-corefx,可以安装:

安装dotnet-new

$ npm install -g @servicestack/cli

从模板创建项目:

$ dotnet-new selfhost-corefx ProjectName