2017-06-21 113 views
2

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

是否可以在.NET Core和.NET 4.5应用程序之间共享ServiceModel dll? 我发现我可以制作.NET标准库,它既针对.NET 4.5,又针对.NET Core提供ServiceStack.Core。

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

这种方法有什么已知的问题吗?

回答

4

是否可以在.NET Core和.NET 4.5应用程序之间共享ServiceModel dll?我发现我可以制作.NET标准库,它既针对.NET 4.5,又针对.NET Core提供ServiceStack.Core。

目前.NET 4.5 ServiceModel项目需要在ServiceStack.Interfaces PCL NuGet包/ DLL的依赖,而.NET核心ServiceModel项目需要在ServiceStack.Interfaces.Core .NET标准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的.NET和.NET Core NuGet包合并到ServiceStack的一个主要v5版本中,该发行版将只包含.NET Standard版本的ServiceStack.Interfaces因此您可以毫无问题地在.NET 4.5和.NET Core项目之间自由共享您的ServiceModel.Dll。