2011-12-23 5 views
8

Ho un certo numero di soluzioni che condividono gli stessi progetti in diverse cartelle, per esempio,Come utilizzare Nuget con più di una soluzione

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 questa struttura Nuget crea cartella due pacchetti all'interno di applicazione 1 e Applicazione 2

Ma tutti questi progetti e soluzioni sono correlati tra loro, quindi logicamente è meglio avere una sola cartella di pacchetti.

È possibile impostare in nuget una sola cartella e utilizzare tale cartella per tutte le soluzioni?

Oppure dovrei strutturare le mie soluzioni e progetti in un altro modo?

risposta

1

Condividere un repository tra 2 soluzioni non è realmente possibile, come se si aggiorni un pacchetto in soluzione A i progetti in soluzione b non verranno aggiornati a meno che non siano anche in soluzione A (e potrebbero avere il loro pacchetto automaticamente cancellato perché la soluzione A non li usa più). Fondamentalmente il significato di avere 2 file di soluzione è ridondante o si sta andando a rompere l'altra soluzione senza alcun modo di sapere.

Come si correlano le soluzioni? Forse c'è un altro modo per risolvere il problema se abbiamo un po 'più di informazioni.

+0

Se ho progetti correlati, cerco sempre di avere almeno una soluzione che li contenga tutti, in modo che l'aggiornamento dei pacchetti sia meno doloroso ... – Schwarzie2478

6

Si può fare questo con l'aggiunta di file nuget.config ad ogni soluzione con i seguenti contenuti

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

Assicurarsi che tutti puntano alla stessa cartella.

Quando si crea questo file, è necessario riavviare Visual Studio per utilizzare questa impostazione.

+1

Nell'ultimo Nuget, il repositoryPath deve essere scritto con barra se è un percorso relativo. (../Pacchetti) –