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

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

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

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

现在我们正在编译:对于单声道对单声道,对于窗口对窗口。 如果我理解正确的话,在 .NET Standard 场景中,我们将被迫仅在 Windows 上进行编译,然后选择正确的 dll 并部署到 Linux。

此方法有任何已知问题吗?

最佳答案

Is it possible to share ServiceModel dll between .NET Core and .NET 4.5 applications? I have found that I can make .NET Standard library which targets both and reference ServiceStack for .NET 4.5, and ServiceStack.Core for .NET Core.

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

替代方法是使用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,不会出现任何问题。

关于.net - 将 ServiceStack 项目从 mono 迁移到 .NET Core/Standard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44679136/

相关文章:

linux - Linux下从Mono-GTK#应用程序访问 "Applications menu"

servicestack - ServiceStack MiniProfiler 能否显示 SQL 参数值,而不仅仅是绑定(bind)的参数名称?

c# - 使用 ServiceStack 使用 REST web 服务时的用户身份验证

servicestack - 请求被重定向到 login.aspx?ReturnUrl=

c# - SimpleStub 中 MockBehavior.Loose 和 MockBehavior.Strict 有什么区别?

c# - 如何编写 Mono 守护程序

c# - NEST 批量插入后等待服务器完成索引

c# - Mono.Zeroconf服务端口始终设置为0

.net - LINQ 有多独特?

c# - 如何访问 WPF Xaml 中的控件引用?