Desidero creare e distribuire un pacchetto NuGet che, una volta installato, installa solo a livello della soluzione nella cartella radice packages
, facendo riferimento al pacchetto nel file .NuGet\packages.config
.Come creare un pacchetto NuGet a livello di soluzione pura
Ho trovato alcune informazioni sul formato dei pacchetti NuGet per quanto riguarda questo argomento già e secondo NuGet FAQ questo dovrebbe essere possibile se si seguono queste linee guida:
Qual è la differenza tra un progetto- pacchetto di livello e un pacchetto a livello di soluzione?
Un pacchetto a livello di soluzione deve essere installato una sola volta in una soluzione disponibile per tutti i progetti nella soluzione. Un pacchetto a livello di progetto deve essere installato separatamente in ogni progetto in cui si desidera utilizzare . Per i pacchetti a livello di soluzione, NuGet non modifica nulla nel progetto , mentre in un pacchetto a livello di progetto lo fa. In genere, un pacchetto a livello di soluzione installa nuovi comandi che è possibile chiamare da all'interno della finestra della console di Gestione pacchetti.
Un altro Suggested SO solution afferma che quanto sopra avrebbe dovuto funzionare anche.
Il fatto è che non riesco a farlo funzionare. Ho verificato che il mio pacchetto non ha lib o il contenuto delle directory:
ho messo tutti i file da distribuire nel tools
-cartella nel pacchetto, tra cui lo script init.ps1` superiore funzionare su installazione .
Sto usando Visual Studio 2015 e quando voglio installare il pacchetto:
- prima di tutto devo selezionare un progetto per l'installazione. Mi ero aspettato di non doverlo specificare, poiché dovrebbe essere esteso a tutta la soluzione.
:/
- Lo script
init.ps1
viene eseguito ed esegue i comandi come voglio che facciano.:)
- Tuttavia, nel progetto è stata creata una cartella
packages
che sono stato costretto a scegliere per completare l'installazione. Mi sarei aspettato che la cartellapackages
venisse creata nella soluzione root.:(
- Inoltre, il file
packages.config
viene creato nella cartella del progetto e non in.NuGet\packages.config
, come mi aspetterei dopo aver letto i documenti che ho trovato su questo.:(
Qualche suggerimento su come farlo funzionare? Si tratta di una limitazione VS 2015 o di una modifica NuGet 3 (come credo sia stata inclusa in VS2015)?