安装VS 2015更新3(和nuget 3.4.4)之后,我注意到当我导入依赖于.NETStandard 1.4
的内容时,我的4.6.1项目中安装了更多依赖项。
由于.NET Framework 4.6.1实现了.NET Standard 1.4,为什么nuget会引入每个System.X
程序集?难道不知道目标框架已经具备了它所需要的东西吗?
重现我所看到(并且感到困惑)的步骤:
Microsoft.IdentityModel.Clients.ActiveDirectory
System.X
(System.IO
,System.Collections
,System.Linq
等)。这似乎没有必要,在我更新nuget之前没有发生。答案 0 :(得分:0)
在我的Visual Studio 2015 Update 3中将我的NuGet软件包管理器降级到3.3版后,我发现当我在项目中安装Microsoft.IdentityModel.Clients.ActiveDirectory软件包时,没有将依赖项添加到我的项目中项目。所以这个问题是由NuGet版本引起的。
根据release note for NuGet 3.4,它开始于" 支持netstandard和netstandardapp框架标记"。这意味着NuGet 3.4启动支持.NET Standard和.NET Standard Framework相关的应用程序。
请将NuGet 3.3和NuGet 3.4或更高版本中的Dependencies部分与同一个软件包进行比较。在版本3.4之前,它显示" Unsupported",但从版本3.4开始,它显示" .NET标准,版本1.4"。这就是安装NuGet 3.4.4时将所有依赖项添加到项目中的原因。