servicestack,C#,servicestack" /> servicestack,C#,servicestack" />

C# 在.Net framework web项目中使用DotNetStandard服务模型的ServiceStack

C# 在.Net framework web项目中使用DotNetStandard服务模型的ServiceStack,c#,servicestack,C#,servicestack,我们最近使用ServiceStack创建了一个新的DotNetCore web服务。ServiceModel项目是一个DotNet标准类库v2.0 我在引用DotNet Framework 4.6.1中编写的现有web服务中的新ServiceModel时遇到编译错误。看起来,通过引用新的ServiceModel,它正在拉入ServiceStack.Interfaces.Core,该ServiceStack.Interfaces.Core与DotNet Framework项目中已引用的Servic

我们最近使用ServiceStack创建了一个新的DotNetCore web服务。ServiceModel项目是一个DotNet标准类库v2.0

我在引用DotNet Framework 4.6.1中编写的现有web服务中的新ServiceModel时遇到编译错误。看起来,通过引用新的ServiceModel,它正在拉入ServiceStack.Interfaces.Core,该ServiceStack.Interfaces.Core与DotNet Framework项目中已引用的ServiceStack.Interfaces冲突

我们还不打算将这些现有服务升级到DotNetCore。有没有办法在DotNet Framework web服务中使用DotNet标准ServiceModel

[编辑1]

发现了类似的问题。我的ServiceModel仅引用ServiceStack.Interfaces.Core(5.1.0)。.net Framework项目的目标是v4.6.1,并使用ServiceStack v4.5.8。我是否需要升级到最新的服务堆栈才能正常工作

[编辑2]

在.net Framework项目中将ServiceStack版本升级到5.1.0。修复了那些未实现IServiceClient错误的服务。然而,现在我越来越

  • 类型“IReturn”是在未定义的程序集中定义的 参考。必须添加对程序集的引用 'ServiceStack.Interfaces,版本=5.0.0.0,区域性=中性, PublicKeyToken=null'

  • 方法的类型参数 “IServiceGateway.Send(object)”无法从 用法。尝试显式指定类型参数


如果您想同时支持经典ASP.NET框架项目和.NET核心项目,您需要多个目标。有关详细信息,请参见前面的回答:

如果您只想支持ASP.NET Core.NET Framework项目和.NET Core项目(即两个ASP.NET Core项目),则可以选择仅包含.NET标准版本的


或者,您可以避免共享ServiceModel.dll项目的二进制耦合,让经典ASP.NET项目通过引用DTO。

当您说我需要“引用ServiceStack的*.Core”包时“,你是说将使用ServiceModel的项目需要引用这些吗?@CoffeeAddict我的意思是强制ASP.NET核心框架项目引用与.NET核心项目相同的.NET标准2.0版本。我试图理解上面链接中的内容。我的理解是.NET Framework 4.6.1项目应该能够只使用.NET标准代码库dll。链接文本说您重新发布了.Core Nuget包,该包只包含.NET标准2.0版本,因此.NET Framework项目可以使用它。这是有道理的。我的ServiceModel是一个.NET标准库,仅引用ServiceStack.Interfaces.Core(它是一个.NET标准库)。那么我的.NET Framework ASP.NET应用程序的4.6.1版本应该能够使用它了吗?我在这里遗漏了什么?@CoffeeAddict否,请阅读我的a经典ASP.NET框架项目需要多目标,只有ASP.NET核心框架项目可以通过引用
*.Core
包避免多目标。我的回答解释了如果您试图从v4.6.1项目调用ASP.NET核心项目,那么只有两个选项可用,即多目标或使用C#添加ServiceStack引用。