gpt4 book ai didi

c# - .Net Core 和 Full Framework 项目在一个解决方案中

转载 作者:行者123 更新时间:2023-11-30 23:07:21 26 4
gpt4 key购买 nike

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

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

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

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

先谢谢大家

最佳答案

您想调查 .NET Standard - 我还会看一下 videos put out by Immo Landwerth关于它。

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

下面是不同框架如何采用和支持 .NET Standard 的可视化。

enter image description here

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

  • .NET 核心 2.0
  • .NET Framework 4.6.1
  • 单声道 5.4等

这意味着任何以这些框架为目标的应用程序都可以访问 .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)主要解决方案。

关于c# - .Net Core 和 Full Framework 项目在一个解决方案中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47430005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com