2012-03-01 2 views
7

나는이 가이드 http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-packageNuget의 packages.config 및 특정 버전

내가 성공적으로 nuspec 및 nupkg을 만든 다음 내 프로젝트에서 Nuget 패키지를 만들려고하고 있습니다. 내 프로젝트에는 Nuget을 통해 설치 한 Json.NET에 대한 종속성이 있습니다. 그러나 버전 4.0.7에서 사용할 Json.NET의 특정 버전을 지정하려고합니다. 내 nuspec에 아래 추가 : 나는 nuget pack을 실행하면

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

내가 packages.config이 완전히를 설치하기로 nuspec 내 정의 의존성을 무시하는 것 같다

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

을 감지하는 것 Nuget 패키지는 최신 버전 4.0.8에서 가져온 4.0.7 이상의 종속성을 나열합니다.

어떻게하면 좋을까요? 또는 Nuget이 packages.config의 종속성을 유지하면서 특정 종속성을 덮어 쓸 수있게하려면 어떻게해야합니까?

답변

18

같은 문제가 발생했습니다. 당신은 프로젝트 종속성에 끌어 때이 될 것이다 보장됩니다 그래서이

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

같은 정확한 버전을 정의해야 = 4.0.7 없습니다> = 4.0.7

+1

[4.0.7,4.0.7]도 분명히 작동하지만 [4.0.7] * 작동해야합니다. 그렇지 않은 경우 버그가 있습니다. 그것은 저에게 효과적 이었지만, 당신이 무엇을하고 있었는지 정확히 알지 못합니다. 정확히 무엇을했는지 [버그 신고] (http://nuget.codeplex.com/WorkItem/Create)하십시오. 문제를 해결할 수 있습니다. 감사! –

3

방법은 당신은 당신의 버전을 지정 맞다; versioning docs에 표시된 것처럼 [1.0]은 'version == 1.0'을 의미합니다. 설명하는 동작은 버그가 될 수 있지만 버그를 재현 할 수는 없습니다. 내가 무슨 짓을 :

  • 추가 Json.NET이 NuGet을 통해 .nuspec
  • Exec을 추가 <dependencies><dependency id="Newtonsoft.Json" version="[4.0.7]" /> exec 된 nuget spec
  • (이것은 4.0.8 설치)
  • 클래스 라이브러리를 생성 'd nuget pack
  • 패키지 탐색기에서 패키지를 열었습니다. '= 4.0.7'과 같이 종속성을 보여줍니다.
  • 새 프로젝트에 내 패키지를 설치했습니다. 그것은 '= 4.0.7'과 같은 의존성을 보여주고 아마 당신은 nuget.exe의 최신 버전 또는 NuGet 비주얼 스튜디오 확장을 사용하지 않는 4.0.7

screen capture screen capture 2

를 설치? 당신이 "의존성을 나열"한다고 말할 때, 당신은 그것을 어디서 볼 수 있습니까? 패키지가 패키지 탐색기에 설치되었거나 다른 곳에 있습니까?