Ho controllato un file packages.config nel controllo del codice sorgente. Questo specifica la versione esatta della dipendenza da Nuget che voglio. Abbiamo il nostro repository NuGet. Stiamo creando questi pacchetti NuGet da soli.Come riferimento invece di copiare i file js da un pacchetto Nuget in fase di compilazione in TeamCity?
<packages>
<package id="Dome" version="1.0.0.19" targetFramework="net45" />
<package id="Dome.Dojo" version="1.0.0.19" targetFramework="net45" />
</packages>
Questi pacchetti hanno alcuni file JavaScript che quando si aggiunge il pacchetto Nuget come riferimento in Visual Studio vengono copiati la cartella Scripts nel progetto.
Non voglio controllare questi file JS a controllo del codice sorgente, voglio solo archiviare il file packages.config.
Quando il mio progetto si basa in Team City (o quando costruire in Visual Studio, dopo un checkout fresco) non copia i file JS dal pacchetto NuGet. C'è una domanda qui spiegare un problema simile:
NuGet package files not being copied to project content during build
Ma, la soluzione in risposta a questa domanda non funziona per me; quella soluzione utilizza ReInstall, che è problematica perché può aggiornare automaticamente la versione nel file packages.config (diciamo se una dipendenza è specificata come> =).
Lo scopo di tutto questo è che voglio essere in grado di eseguire il checkout di una revisione dal mio controllo sorgente e creare quella versione con le giuste dipendenze E voglio utilizzare le funzionalità di packaging di NuGet. Quindi, non voglio alcun "aggiornamento automatico all'ultima versione durante la compilazione".
C'è un problema contro NuGet (http://nuget.codeplex.com/workitem/2094) su NuGet non i file ripristino dei file di contenuto. Ed è contrassegnato come Closed By Design.
Pensando a come funziona un po 'di più, mi sembra (ma non ne sono sicuro al 100%) che per gli assembly NuGet abbia un comportamento diverso - non li copia nel progetto, invece li fa riferimento dalla posizione nella cartella dei pacchetti. Mi sembra che i file js nel pacchetto NuGet debbano essere con riferimento a, analoghi al modo in cui le DLL vengono referenziate.
C'è un modo per costruire un pacchetto NuGet in modo che faccia riferimento al JS come collegamenti nel progetto (in modo simile a come è possibile aggiungere un file esistente come collegamento in VS)? E questo risolverebbe il mio problema?
Se poi non mi prendo il consiglio dato da Jeff Handley quando si chiude spuntato Nuget Edizione 2094 sopra citato:
L'opzione che hai è quella di creare un nuovo file eseguibile console che riferimenti NuGet. Core e potresti creare un pacchetto supplementare ripristinato per uso personale che copia i contenuti del pacchetto nel progetto .
Scrivere il mio strumento da riga di comando per copiare il contenuto sembra che stia spingendo l'acqua in salita qui - sto facendo qualcosa di fondamentalmente sbagliato?