2011-12-23 14 views
8

Tengo una serie de soluciones que comparten los mismos proyectos en carpetas diferentes, por ejemplo,Cómo utilizar Nuget con más de una solución

Common folder 
- common 1 
- common 2 
Contracts folder 
- contracts for project A 
- contracts for Project B 
Application 1 folder (in this folder I have my solution file) 
- Solution A 
- nuget creates packages folder there 
Application 2 folder 
- Solution B 
- nuget creates packages folder there 
packages folder(I need this folder at top level, so all projects can reference it) 

Con esta estructura crea Nuget carpeta dos paquetes en el interior de Aplicación 1 y Aplicación 2

Pero todos estos proyectos y soluciones están relacionados entre sí, así que, lógicamente, es mejor tener solo una carpeta de paquetes.

¿Es posible establecer en nuget solo una carpeta y usar esa carpeta para todas las soluciones?

¿O debería estructurar mis soluciones y proyectos de otra manera?

Respuesta

1

No es posible compartir un repositorio entre 2 soluciones, como si actualizara un paquete en la solución A, los proyectos en la solución b no se actualizarán a menos que también estén en la solución A (y pueden tener su paquete automáticamente eliminado porque la solución A ya no los usa). Básicamente, significa que tener 2 archivos de solución es redundante o vas a romper la otra solución sin saberlo.

¿Cómo se relacionan las soluciones entre sí? Tal vez haya otra forma de resolver el problema si tenemos un poco más de información.

+0

Si tengo proyectos que están relacionados entre sí, siempre trato de tener al menos una solución que los contenga a todos, por lo que la actualización de paquetes es menos dolorosa ... – Schwarzie2478

6

Usted puede hacer esto mediante la adición de archivos nuget.config a cada solución con la siguiente contenido

<settings> 
<repositoryPath>..\Packages</repositoryPath> 
</settings> 

Asegúrese de que todos apuntan en la misma carpeta.

Cuando crea este archivo, debe reiniciar Visual Studio para que utilice esta configuración.

+1

En la última versión de Nuget, el repositoryPath debe escribirse con forward barras si es una ruta relativa. (../Paquetes) –

Cuestiones relacionadas