.Net Core 和完整框架项目合二为一

2024-01-14

假设我有一个包含多个项目的解决方案。其中一个项目是 Main(放置通用代码和 API),其余项目是 Main 的扩展(Extension1、Extension2、Extension3)并使用第三方库。现在我正在使解决方案在完整框架和.Net Core 框架上兼容。

在我开始添加对 .Net Core 的支持之前,该解决方案已经根据目标框架进行了条件构建过程,因此我在条件构建方面没有任何问题。

我遇到的问题是部分第三方库与 .Net Core 尚不兼容。这使得部分扩展与 .Net Core 不兼容。我想到的唯一选择是为完整框架和.Net Core 框架提供单独的解决方案和代码库。但我希望在这两种情况下都有相同的代码库,因为我的代码与这两个框架都非常兼容,否则支持起来会很痛苦。

对于这种情况,是否可能只有一种解决方案,并且能够为完整框架构建 (Main + (Extension1, Extension2, Extension3)) 项目以及为 .Net Core Framework 构建 (Main + (Extension1, Extension2)) 项目?如果不是,我有什么选择?

谢谢大家


你想要调查.NET标准 https://learn.microsoft.com/en-gb/dotnet/standard/net-standard- 我也想看看关于它。

简而言之,.NET Standard 列出了 .NET 应用程序(Framework、Core、WPF、Xamarin 等)可以访问的 API 和方法。标准的更高版本号包括更多 API,但会减少可以使用的框架数量(Framework、Core、WPF、Xamarin 等)。

下面直观地展示了不同框架如何采用和支持 .NET Standard。

顶部是 .NET Standard 的版本,左侧是框架的版本。使用此图表,您可以看到 .NET Standard 2.0 支持以下各项:

  • .NET核心2.0
  • .NET框架4.6.1
  • 单声道5.4 ETC。

这意味着任何面向这些框架的应用程序都可以访问 .NET Standard 2.0 中列出的 API。

在您的示例中,您可以将所有业务逻辑放在 .NET Standard 兼容库中(无论它们是 Framework 还是 Core),并拥有两个单独的 Main 项目(一个用于 Framework,一个用于 Core)。

这可以通过三个单独的解决方案来完成:

  • 一个用于 .NET Standard 类库
  • 一个用于 .NET Framework Main(其中包括 .NET Standard 类库)
  • 一个用于 .NET Core Main(其中包括 .NET Standard 类库)

您还可以将 .NET Standard 类库构建为 NuGet 包(无论是否在外部托管它们),并将它们拉入您的两个(.NET Framework 和 .NET Core)主要解决方案中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.Net Core 和完整框架项目合二为一 的相关文章

随机推荐