gpt4 book ai didi

c# - 我可以在经典的 .NET 4.6.1 应用程序中使用 .NET Standard 2.0 包吗?

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

我有点困惑如何在 .net core.net-framework 应用程序之间共享 .net-standard 2 nuget 包.例如,我创建了只有 <TargetFramework>netstandard2.0</TargetFramework>.net-standard 2.0 包.所以我只有 ../libs/netstandard2.0包中的文件夹。我可以将它按原样安装到 .net-framework 4.6.1 中吗?应用程序(根据 compatibility matrix 我可以)?或者我应该让这个包成为多目标 <TargetFrameworks>netstandard2.0;net461</TargetFrameworks> ?这里有什么优势?

最佳答案

是的,的确如此。您可以仅从 .NET Framework 4.6.1 项目中引用 .NET Standard 2.0 包(较低版本的框架将无法与 .NET Standard 2.0 一起使用)。无需单独的目标或重建。

另请阅读 Referencing .NET Standard Assemblies from both .NET Core and .NET Framework .

关于使用多目标的好处:除非您需要,否则没有好处。这样的情况会怎样?根据the documentation :

You may need to target older versions of the .NET Framework when your project supports both the .NET Framework and .NET Core. In this scenario, if you want to use newer APIs and language constructs for the newer targets, use #if directives in your code. You also might need to add different packages and dependencies for each platform you're targeting to include the different APIs needed for each case.

因此,只有在代码或引用不兼容时才真正需要它。如果您没有这个问题,则不需要多目标。

有一个示例给出了如何包含基于构建目标的引用,这可能会提供一些见解:

<ItemGroup Condition="'$(TargetFramework)' == 'net40'">
<Reference Include="System.Net" />
</ItemGroup>

关于c# - 我可以在经典的 .NET 4.6.1 应用程序中使用 .NET Standard 2.0 包吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46539591/

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