Digamos que tengo una solución que tiene dos proyectos. ProjectA usa un paquete cuyo número de versión es 2.0.0 y ProjectB usa el mismo paquete cuyo número de versión es 2.3.0 (ProjectB usa algunas características más avanzadas del paquete). Entonces, cuando se crea la solución, creo que VS agrega dos paquetes (uno es 2.0.0, el otro es 2.3.0). Pero VS también proporciona una etiqueta de consolidación cuando administra paquetes nuget, por lo que solo puedo pensar en un beneficio para consolidar diferentes versiones: reducir el tamaño del ensamblaje (en mi caso, usa 2.3.0), además del problema del tamaño, ¿es así? ¿Algún otro beneficio para consolidar paquetes con diferentes versiones?
Sí, menos problemas de dependencia. Imagina que tienes un ProyectoC que hace referencia tanto al ProyectoA como al ProyectoB. El compilador (¡generalmente!) resolverá esto automáticamente y usará solo el paquete más nuevo, pero dado que ProjectA finalmente se creó con 2.0.0, pueden surgir algunos problemas de compatibilidad. Esto es particularmente un problema si las versiones del paquete dependiente no son compatibles binariamente entre sí (digamos, hay un método solo disponible en 2.0 pero eliminado para 2.3).
Si bien el compilador se esfuerza por solucionar cualquier posible conflicto de versión, considero que es una buena idea usar solo una versión de una dependencia dentro de la misma solución. Simplemente reduce los dolores de cabeza que tienes.