2012-03-01 19 views
7

Sto cercando di creare un pacchetto Nuget dal mio progetto seguendo questa guida http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-packageNuget packages.config e versione specifica

ho creato con successo un nuspec e nupkg. Il mio progetto contiene una dipendenza da Json.NET che ho installato tramite Nuget. Tuttavia, voglio specificare una versione specifica di Json.NET da utilizzare, versione 4.0.7. Ho aggiunto il seguente per la mia nuspec:

<dependencies> 
    <dependency id="Newtonsoft.Json" version="[4.0.7]" /> 
</dependencies> 

Quando eseguo nuget pack sembra di rilevare Ho un packages.config

Using 'MyProject.nuspec' for metadata. 
Found packages.config. Using packages listed as dependencies. 

Questo sembra ignorare completamente la mia dipendenza definito nel nuspec come installare il Il pacchetto Nuget elenca le dipendenze come> = 4.0.7 che richiama l'ultima versione 4.0.8.

Come posso arrestarlo o preferibilmente mantenere Nuget estraendo le dipendenze da packages.config ma permettimi di sovrascrivere specifiche dipendenze?

risposta

18

Ho riscontrato lo stesso problema. È necessario definire una versione esatta come questo

<dependencies> 
<dependency id="Newtonsoft.Json" version="[4.0.7,4.0.7]" /> 
</dependencies> 

modo che garantirà quando il progetto tira dentro le dipendenze sarà = 4.0.7 non> = 4.0.7

+1

Anche se [4.0.7.4.0.7] funzionerà altrettanto bene, [4.0.7] * dovrebbe * funzionare. Se non lo è, c'è un bug. Ha funzionato per me, ma non so esattamente cosa stavi facendo. Si prega di [segnalare un bug] (http://nuget.codeplex.com/WorkItem/Create) con esattamente quello che hai fatto, in modo che possiamo ripararlo. Grazie! –

3

Il modo in cui si specifica la versione è corretta; come mostrato nel nostro versioning docs, [1.0] significa 'versione == 1.0'. Il comportamento che stai descrivendo sarebbe un bug, ma non sono riuscito a riprodurre il bug. Quello che ho fatto:

  • creato una libreria di classi
  • Aggiunto Json.NET tramite NuGet (installato 4.0.8)
  • Exec'd nuget spec
  • Aggiunto <dependencies><dependency id="Newtonsoft.Json" version="[4.0.7]" /> al .nuspec
  • Exec 'd nuget pack
  • Ha aperto il pacchetto in Package Explorer; mostra la dipendenza come '= 4.0.7'
  • Installato il mio pacchetto in un nuovo progetto; esso mostra la dipendenza come '= 4.0.7' e installa 4.0.7

screen capture screen capture 2

Forse non si sta utilizzando la versione più recente del nuget.exe o l'estensione di Visual Studio NuGet? Quando lo dici "elenca la dipendenza", dove lo vedi? Quando il tuo pacchetto è installato, in Package Explorer o da qualche altra parte?

Problemi correlati