2012-03-01 12 views
7

Próbuję utworzyć pakiet Nuget z mojego projektu po tym przewodniku http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-packageNuget packages.config i specyficzna wersja

I pomyślnym utworzeniu nuspec i nupkg. Mój projekt zawiera zależność od Json.NET, którą zainstalowałem za pośrednictwem Nuget. Chciałbym jednak podać konkretną wersję Json.NET do użycia w wersji 4.0.7. Dodałem poniżej mojego nuspec:

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

Kiedy biegnę nuget pack wydaje się wykryć Mam packages.config

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

To wydaje się całkowicie ignorować moje zależność zdefiniowaną w nuspec jak zainstalowaniu Pakiet Nuget wymienia zależności jako> = 4.0.7, które pobiera najnowszą wersję 4.0.8.

Jak mogę to zatrzymać lub najlepiej sprawić, aby Nuget pobierał zależności z pliku packages.config, ale pozwolił mi nadpisać określone zależności?

Odpowiedz

18

Uderzyłem w ten sam problem. Trzeba określić dokładną wersję jak ten

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

tak, że zapewni gdy projekt pociąga w zależnościach będzie = 4.0.7 nie> = 4.0.7

+1

Podczas gdy [4.0.7,4.0.7] oczywiście również będzie działać, [4.0.7] * powinno * działać. Jeśli nie, jest błąd. To zadziałało dla mnie, ale nie wiem dokładnie, co robiłeś. Proszę [zgłosić błąd] (http://nuget.codeplex.com/WorkItem/Create) dokładnie z tym, co zrobiłeś, więc możemy to naprawić. Dzięki! –

3

Sposób określony wersję jest poprawne; jak pokazano w naszym versioning docs, [1.0] oznacza "version == 1.0". Zachowanie, które opisujesz, byłoby błędem, ale nie mogłem odtworzyć błędu. Co zrobiłem:

  • utworzono bibliotekę klasy
  • Dodany Json.NET poprzez Nuget (jest zainstalowany 4.0.8)
  • Exec'd nuget spec
  • Dodany <dependencies><dependency id="Newtonsoft.Json" version="[4.0.7]" /> do .nuspec
  • Exec 'd nuget pack
  • Otworzył pakiet w Eksploratorze pakietów; pokazuje zależność jako "= 4.0.7"
  • Zainstalowałem mój pakiet w nowym projekcie; to pokazuje zależność jako '= 4.0.7' i instaluje 4.0.7

screen capture screen capture 2

Może nie korzystasz z najnowszej wersji nuget.exe lub Nuget rozszerzenie Visual Studio? Kiedy mówisz, że "wyświetla zależność", gdzie to widzisz? Kiedy pakiet jest zainstalowany, w Eksploratorze pakietów lub gdzieś indziej?

Powiązane problemy