Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以在经典的.NET 4.6.1应用程序中使用.NET标准2.0包吗?_C#_.net_.net Standard 2.0 - Fatal编程技术网

C# 我可以在经典的.NET 4.6.1应用程序中使用.NET标准2.0包吗?

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

如何在.net core.net framework应用程序之间共享.net standard 2nuget软件包,我有点困惑。例如,我只使用
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>