2017-04-18 10 views
4

동일한 NuGet 패키지를 참조하는 여러 프로젝트가 있습니다. 최신 코드를 얻었을 때 프로젝트 중 하나에 업데이트 된 package.config가 있고 해당 패키지에서 제공하는 DLL에 대한 참조가 업데이트되었음을 ​​알게되었습니다.package.config 업데이트가 참조를 업데이트하지 않습니다.

이제는 NuGet 엔진에서 업그레이드를 수행하자마자 새로운 prjects에서 package.config를 업데이트하여 새 DLL을 가져오고 싶습니다. 글쎄, 그것은 일어나지 않았다. 그 후 나는 다음과 같은 일을 시도하고 그들 중 누구도 일하지 :

  1. 는 DLL의 이전 버전을 삭제 한 후 패키지
  2. 패키지 폴더를 삭제를 복원하고, 내 VS 2015를 다시 시작하고 패키지
를 복원

또한 재미있는 점은 Nuget Packages를 관리하고 새 DLL이 필요한 패키지를 살펴볼 때 이미 새 버전임을 나타내고 업그레이드 할 필요가 없다는 것입니다.

NuGet 엔진에서 이러한 패키지를 업그레이드 할 수있는 방법이 있습니까?

답변

9

package.config 파일을 편집해도 Visual Studio에서 프로젝트를 변경하지 않습니다. 또한 NuGet 복원은 프로젝트를 수정하지 않습니다. NuGet 복원은 NuGet 패키지를 다운로드하고 프로젝트에서 사용할 수 있도록합니다.

packages.config 파일을 편집하는 대신 Visual Studio 또는 패키지 관리 콘솔에서 NuGet 패키지 관리자를 사용하여 필요한 프로젝트에서 NuGet 패키지를 업데이트하면됩니다.

다른 대안으로는 올바른 업데이트 된 어셈블리 참조를 사용하도록 프로젝트 파일 (.csproj)을 업데이트하는 것입니다. 또는 Update-Package -reinstall을 실행하여 NuGet 패키지를 강제로 제거하고 프로젝트에 다시 설치할 수 있습니다. 그러면 어셈블리 참조가 수정됩니다.

+0

"업데이트 패키지 -reinstall"확실히 인해 내 누락 된 참조에 추가 할 내 project.config 파일을 수동으로 편집 한 후 프로젝트. –

0

Visual Studio 2017에서 솔루션을 열 수있는 경우 최신 PackageReference를 사용하여 Nuget을 관리하는 것이 좋습니다. Packages.config에는 몇 가지 단점이 있으며 PackageReference는 이러한 문제를 해결합니다. 여기

이 PackageReference로 마이그레이션 할 수있는 솔루션입니다 : 또한 https://github.com/NuGet/Home/wiki/Packages.config-to-PackageReference-Migrator

, 당신은 확장 대이 사용이 할 수 는 https://marketplace.visualstudio.com/items?itemName=TaylorSouthwickMSFT.NuGetPackagetoProjectjsonConverter