gpt4 book ai didi

c# - 我是否必须包含所有 System.Collections.Immutable 依赖项?

转载 作者:IT王子 更新时间:2023-10-29 04:24:50 25 4
gpt4 key购买 nike

我刚从(旧的)Microsoft.Bcl.Immutable NuGet 包切换到 System.Collections.Immutable并惊讶地发现我的项目中有所有这些新的包依赖项:

System.Collections
System.Diagnostics.Debug
System.Globalization
System.Linq
System.Resources.ResourceManager
System.Runtime
System.Runtime.Extensions
System.Threading

它们被列为 NuGet 包的依赖项,因此它们有权存在,但它们显然也已经安装在我的 PC 和我的目标环境(顺便说一句,Azure)上,因为它们随框架一起提供。

我的项目中已经有大量包,并且希望尽可能避免这 8 个包造成的额外开销(并且不要搬起石头砸自己的脚)。

删除这些依赖项是否安全?
我现在是否必须在整个项目中使用这些包,因为它们可能与安装的版本不同,我的项目的某些部分现在可能使用了错误的包? (由于某些 DLL 链接异常?)

编辑: 只是为了完整性,因为之前有评论:依赖项是实际的包(不是 namespace )并且必须下载,我正在使用 .NET 4.6 进行目标和编译,工作在VS2015中。尽管有些东西已经过时并且不必正常加载包,但完全有可能吗?

最佳答案

您只是看到了 Nuget 包的一个副作用,它必须让很多的人满意。该软件包支持大量目标,最近正在迅速扩散。我看到了对用于 OSX 和 iOS 的 Xamarin、Windows Phone 8.0 和 8.1、Windows 应用商店、CoreCLR(开源项目)、.NET 4.5、用于 iOS 和 Android 的 MonoTouch 以及 .NETCore (Silverlight) 的支持。

这些依赖包仅包含引用程序集,通常安装在您的 c:\program files x86\reference assemblies 目录中的那种。 Nuget 包不会冒这样的引用程序集可能丢失的机会,而是包括整个套件和 kaboodle。

全部下载完成后,程序包安装程序会运行并在您的项目中添加您实际需要 的引用。很容易看到发生了什么,只需打开项目的 References 节点。如果您的目标是 .NET 4.5 及更高版本的桌面版本,则添加的引用总数是 一个,只是 System.Collections.Immutable。是的,您可以删除它们。

关于c# - 我是否必须包含所有 System.Collections.Immutable 依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32187031/

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