C# 我可以在经典的.NET 4.6.1应用程序中使用.NET标准2.0包吗?
如何在.net core和.net framework应用程序之间共享.net standard 2nuget软件包,我有点困惑。例如,我只使用C# 我可以在经典的.NET 4.6.1应用程序中使用.NET标准2.0包吗?,c#,.net,.net-standard-2.0,C#,.net,.net Standard 2.0,如何在.net core和.net framework应用程序之间共享.net standard 2nuget软件包,我有点困惑。例如,我只使用netstandard2.0创建了.netstandard2.0包。所以我的包中只有。/libs/netstandard2.0文件夹。我可以按原样将其安装到.net framework 4.6.1中吗。申请表(根据我的能力)?或者我应该让这个包成为多目标netstandard2.0;net461?这里有什么好处?是的,的确如此。您只需从.NET Fram
netstandard2.0
创建了.netstandard2.0包。所以我的包中只有。/libs/netstandard2.0
文件夹。我可以按原样将其安装到.net framework 4.6.1中吗。申请表(根据我的能力)?或者我应该让这个包成为多目标netstandard2.0;net461
?这里有什么好处?是的,的确如此。您只需从.NET Framework 4.6.1项目中引用.NET Standard 2.0包即可(较低版本的Framework不适用于.NET Standard 2.0)。不需要有单独的目标或重建
也读
关于使用多目标的好处:除非你需要,否则没有任何好处。这是什么情况?根据:
当项目同时支持.NET Framework和.NET Core时,您可能需要将.NET Framework的旧版本作为目标。在这种情况下,如果要为较新的目标使用较新的API和语言构造,请在代码中使用#if指令。您可能还需要为每个目标平台添加不同的包和依赖项,以包含每个情况所需的不同API
所以,只有在代码或引用不兼容的情况下,您才真正需要它。如果你没有这个问题,你就不需要多目标
有一个示例给出了如何基于构建目标包含引用,这可能会提供一些见解:
<ItemGroup Condition="'$(TargetFramework)' == 'net40'">
<Reference Include="System.Net" />
</ItemGroup>