将ServiceStack项目从mono迁移到.NET Core / Standard

时间:2017-06-21 14:37:02

标签: .net mono servicestack .net-core .net-standard

我们将项目部署到单声道环境。我们的目标是.NET 4.5。 现在我们开始第二个项目,它将与我们当前的项目具有相同的ServiceModel。我们正在试验.NET Core。

是否可以在.NET Core和.NET 4.5应用程序之间共享ServiceModel dll? 我发现我可以制作同时针对.NET 4.5和ServiceStack.Core for .NET Core的.NET标准库。

现在我们正在编译:单声道单声道和Windows窗口。 如果我理解正确,在.NET标准版本中我们将被迫只在Windows上编译,然后选择正确的dll并部署到linux。

这种方法有任何已知问题吗?

1 个答案:

答案 0 :(得分:4)

  

是否可以在.NET Core和.NET 4.5应用程序之间共享ServiceModel dll?我发现我可以制作同时针对.NET 4.5和ServiceStack.Core for .NET Core的.NET标准库。

目前,.NET 4.5 ServiceModel项目需要依赖ServiceStack.Interfaces PCL NuGet包/ dll,而.NET Core ServiceModel项目需要依赖ServiceStack.Interfaces.Core .NET Standard 1.1 NuGet包/ dll。您可以使用VS2017新的MSBuild项目格式多重定位您的ServiceModel项目,并以这种方式共享项目或共享多目标NuGet包,为.NET 4.5和.NET Core提供构建。

另一种方法是使用Add ServiceStack Reference通过源代码将您的服务器DTO共享到不同的.NET 4.5或.NET Core客户端(即代替共享您的Service Model.dll),这将起作用,因为源代码是100%兼容。

在发布.NET Core和.NET Standard v2之后,我们将在ServiceStack的主要v5版本中将ServiceStack的.NET和.NET Core NuGet包合并在一起,这个版本只有.NET Standard版本的ServiceStack.Interfaces您将能够自由地在.NET 4.5和.NET Core项目之间自由共享您的ServiceModel .Dll。