2013-09-28 26 views
6

lettura Using NuGet without committing packages to source control ho capito che dovrei aggiungere la cartella .nuget al mio progetto per consentire il ripristino del pacchetto durante la costruzione e la lettura ... Prepare a git repo for NuGet ho capito che potrei rimuovere NuGet.exe e NuGet.config e consentire all'IDE di scaricarli automaticamente impostando DownloadNuGetExe in true in NuGet.targets.NuGet - Come configurare ripristinare pacchetto su MonoDevelop/Xamarin Studio

Beh, io sono un po 'confuso dal 1) Xamarin Studio non scaricare né NuGet.exeNuGet.config ... e 2) la cartella .nuget non è necessario a tutti dal momento che si potrebbe semplicemente emettere comando Restore Pacchetti Nuget su il solution explorer e i pacchetti vengono comunque ripristinati.

Detto questo, qual è il modo giusto per configurare il pacchetto ripristinare su Xamarin Studio/MonoDevelop?

risposta

3

Abilitare il ripristino del pacchetto in modo che avvenga quando il progetto è compilato non è possibile utilizzando l'addin NuGet per Xamarin Studio. È qualcosa che non ho implementato. Se vuoi farlo devi aggiungere i file manualmente e modificare il progetto per utilizzare il file NuGet.targets.

Personalmente preferirei utilizzare l'opzione di menu Ripristina pacchetti NuGet e non utilizzare il file NuGet.targets. Una cosa che perdi qui è l'attivazione di un ripristino del pacchetto su ogni build, ma devi solo farlo una volta. Ottieni anche alcuni vantaggi dell'utilizzo di questo approccio:

  1. Il tuo progetto non ha bisogno di essere modificato.
  2. Tutti i pacchetti NuGet verranno ripristinati prima dell'esecuzione di XBuild, quindi tutti i pacchetti NuGet con le proprie importazioni XBuild personalizzate verranno ripristinati e disponibili in fase di compilazione.
+3

perché non implementare? – JarrettV

+0

Il team NuGet consiglia di utilizzare NuGet restore anziché utilizzare il file NuGet.targets. L'ultima versione di NuGet ripristinerà automaticamente i pacchetti NuGet durante la compilazione senza richiedere un file NuGet.targets. Quindi questo potrebbe essere implementato nell'addin di Xamarin Studio. Lo svantaggio è che l'addin dovrebbe essere caricato all'avvio per rilevare eventuali eventi di build. Questo è il motivo per cui ho solo aggiunto il supporto per il ripristino che viene attivato tramite un menu. –

3

Oppure è possibile utilizzare il nuovo pacchetto di ripristino in 2.7. Basta eseguire

nuget.exe restore <your_solution_file> 

per ripristinare tutti i pacchetti utilizzati dai progetti nella soluzione.

Vedere http://docs.nuget.org/docs/reference/package-restore per dettagli.

+0

Per quanto posso dire questo non funziona su Mono, che è ciò di cui OP stava parlando. Il ripristino del pacchetto contro .sln è specificatamente richiamato nei documenti di nuget come non ancora funzionante con Mono - http://docs.nuget.org/consume/compatibility – piers7

+0

"nuget restore solution.sln" Funziona per me in mono con NuGet 3.3, ma non per repository locali (directory). Ovviamente i repository locali non funzionano per me dalla GUI, quindi ... – tekHedd

Problemi correlati