[nuget] NuGet을 통해 이전 버전의 패키지를 설치하는 방법은 무엇입니까?

이전 버전의 패키지 ( Newtonsoft.Json) 를 설치하고 싶습니다 . 그러나 NuGet은 롤백합니다.

PM> Install-Package Newtonsoft.Json -Version 4.0.5
Successfully installed 'Newtonsoft.Json 4.0.5'.
Install failed. Rolling back...
Install-Package : Already referencing a newer version of 'Newtonsoft.Json'.

어떤 도움이라도 대단히 감사하겠습니다.



답변

다음을 시도하십시오 :

Uninstall-Package Newtonsoft.Json -Force

뒤에 :

Install-Package Newtonsoft.Json -Version <press tab key for autocomplete>


답변

현재 Nuget 2.8 하는 기능이 다운 그레이드 패키지를.

Nuget 2.8 릴리즈 노트

예:

패키지 관리자 콘솔에 입력 한 다음 명령은 couchbase 클라이언트를 버전 1.3.1.0으로 다운 그레이드합니다.

Update-Package CouchbaseNetClient -Version 1.3.1.0

결과:

Updating 'CouchbaseNetClient' from version '1.3.3' to '1.3.1.0' in project [project name].
Removing 'CouchbaseNetClient 1.3.3' from [project name].
Successfully removed 'CouchbaseNetClient 1.3.3' from [project name].

아래의 크림 보에 따라 참고할 사항 :

“이 방법은 한 시험판 버전에서 다른 시험판 버전으로 다운 그레이드 할 때는 작동하지 않습니다. 릴리스 버전으로 다운 그레이드하는 경우에만 작동합니다.”


답변

나는 Xavier의 대답을 꽤 많이 사용했습니다. 최신 버전의 NuGet에서 패키지 버전을 지정된 범위로 제한하는 것이 쉽고 유용하다는 것을 추가하고 싶습니다.

예를 들어, 프로젝트에서 Newtonsoft.Json과거 버전 3.x.x을 업데이트 하지 않으려면 파일 package에서 해당 요소 packages.config를 다음과 같이 변경하십시오.

<package id="Newtonsoft.Json" version="3.5.8" allowedVersions="[3.0, 4.0)" targetFramework="net40" />

통지 allowedVersions속성을. 이렇게하면 해당 패키지의 버전이 3.0( 포함 ) 및 4.0( 독점 ) 사이의 버전으로 제한됩니다 . 그런 다음 Update-Package전체 솔루션 을 수행 할 때 특정 패키지가 이전 버전으로 업데이트되는 것에 대해 걱정할 필요가 없습니다 3.x.x.

이 기능에 대한 설명서는 여기에 있습니다 .


답변

이제는 Visual Studio 2015 이상 에서 매우 단순화 되었습니다. Downgrade / Upgrade패키지 관리자 콘솔에서 명령을 실행하지 않고 사용자 인터페이스 자체에서 수행 할 수 있습니다 .

  1. Right click on your project그리고 go to Manage Nuget Packages.

  2. 아래 이미지를보십시오.

    • Select your Package and Choose the Version설치하려고했습니다.

프로젝트의 Nuget 패키지 관리자 창

매우 간단하지 않습니까? 🙂 도움이 되었기를 바랍니다…


답변

그것을 얻는 또 다른 수동 옵션 :

.nuget\nuget.exe install Newtonsoft.Json -Version 4.0.5


답변