我正在使用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相关)
答案 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