c# .net nuget nuget-package immutable-collections

c# - ¿Tengo que incluir todas las dependencias de System.Collections.Immutable?



.net nuget (1)

Solo está viendo un efecto secundario del paquete Nuget que tiene que mantener a mucha gente feliz. El paquete soporta una enorme cantidad de objetivos, está proliferando rápidamente en los últimos tiempos. Veo soporte para Xamarin para OSX y iOS, Windows Phone 8.0 y 8.1, Windows Store, CoreCLR (el proyecto de código abierto), .NET 4.5, MonoTouch para iOS y Android y .NETCore (Silverlight).

Estos paquetes dependientes solo contienen conjuntos de referencia , del tipo que normalmente se instalan en su directorio c: / program files x86 / reference assemblies. El paquete Nuget no se arriesga a que falte tal ensamblaje de referencia e incluye todo el kit y kaboodle.

Una vez que se haya descargado todo, el instalador de paquetes se ejecuta y agrega las referencias que realmente necesita en su proyecto. Fácil de ver lo que sucedió, simplemente abra el nodo Referencias de su proyecto. Si se enfocó en la versión de escritorio de .NET 4.5 y superior, el total de referencias agregadas es una , solo System.Collections.Immutable. Sí, puedes eliminarlos.

Acabo de cambiar de (un anterior) Microsoft.Bcl.Immutable NuGet package a System.Collections.Immutable y me sorprendió encontrar todas estas nuevas dependencias de paquetes en mi proyecto:

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

Se enumeran como dependencias del paquete NuGet, por lo que tienen el derecho de estar allí, pero obviamente también están instalados en mi PC y en mi entorno de destino (Azure por cierto), ya que vienen con el marco.

Ya tengo un gran número de paquetes en mi proyecto y me gustaría evitar la sobrecarga adicional causada por estos 8 paquetes, si es posible (y sin dispararme en el pie).

¿Es seguro eliminar estas dependencias?
¿Tengo que usar estos paquetes a lo largo de mi proyecto porque podrían diferir de sus versiones instaladas y alguna parte de mi proyecto podría usar las incorrectas? (¿Debido a alguna locura de enlace DLL?)

Edición: solo para completar, ya que hubo un comentario antes: las dependencias son paquetes reales (no espacios de nombres) y deben descargarse, estoy apuntando y compilando con .NET 4.6, trabajando en VS2015. ¿Es totalmente posible que algo esté desactualizado y que los paquetes no tengan que cargarse normalmente?