我们将项目部署到单一环境。我们的目标是.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/