패키지 복원을 사용할 때 .nuget 폴더의 nuget.exe를 자동으로 업데이트하는 방법이 있습니까?


92

우리 팀은 Nuget 1.5 이후 패키지 복원 활성화 옵션을 사용하여 패키지를 소스 제어에서 제외했습니다. Nuget 1.6이 출시되었을 때 패키지를 가져 오지 않는 문제를 발견하고 패키지 관리자와 일치하도록 1.6으로 업데이트해야하는 .nuget 폴더의 Nuget.exe로 추적했습니다.

Nuget이 업데이트되면 솔루션을 업데이트하는 가장 좋은 방법은 무엇입니까? 솔루션 폴더에 어떤 버전의 너겟이 있는지 스튜디오에서 쉽게 알 수 없습니다. 지금까지 .nuget 폴더를 없애고 패키지 복원 활성화 명령을 다시 실행합니다.

답변:


148

명령 줄에서 다음 명령으로 .nuget \ nuget.exe를 업데이트하는 것이 좋습니다.

nuget.exe update -self

[편집] : 먼저 VS 솔루션을 닫습니다. 업데이트가 있고 솔루션이 열리면 솔루션에서 nuget.exe가 제거됩니다.

당신은 할 수 위의 명령을 추가 할 .nuget \ nuget.targets을 수정하여 복원에 자동으로 nuget.exe 업데이트합니다. 여기에있는 복원 명령을 예로 들어 보겠습니다. 그러나 그만한 가치가 있는지 잘 모르겠습니다. nuget.exe 업데이트는 그다지 일반적이지 않으며 이전 버전과의 호환성은 거의 중단되지 않습니다.


내 프로젝트 중 하나에서 이것을 시도했습니다. NuGet.exe를 업데이트했지만 내 솔루션에서 제거한 것 같습니다. 다시 추가 할 수 있다는 것을 알고 있지만 이상하게 보였습니다.

아 맞다, 이번에는 실제 업데이트를 시도했고 nuget.exe도 VS 솔루션에서 제거되었습니다. (nuget.exe가 최신 상태이기 때문에 이전에 얻지 못했습니다). 업데이트 중에 현재 nuget.exe가 먼저 nuget.exe.old로 이동되어 파일 참조가 끊어지기 때문에 발생합니다. 이 문제가 해결 될지 의심스럽고 솔루션을 닫은 상태에서 명령을 실행합니다.
Alexandre Dion 2012

자체 업데이트를 수행해도 문제가 될 수있는 새 NuGet.targets 파일이 제공되지 않는 것 같습니다. NuGet 팀이 버전 1.6과 1.7 사이에서 대상 파일을 약간 변경했다고 생각합니다.
William Gross

@William Gross는 nuget.org/packages/NuGet.Build 에 대한 업데이트가 있는지 확인할 수 있습니다 (nuget.targets가 포함 된 패키지)
Alexandre Dion

나를 위해 일했습니다. cmd를 관리자로 실행하는 것을
Mohammad

31

이 문제를 처리하는 가장 좋은 방법은 .nuget 폴더를 삭제하고 솔루션 전체 패키지 복원을 다시 활성화하는 것입니다. 위에서 언급했듯이 빌드에 자체 업데이트 명령을 추가 할 수 있지만 버전간에 변경 사항이있는 경우 (또는 솔루션에서 참조를 제거하면) 대상 또는 구성 파일이 업데이트되지 않습니다. 그다지 큰 문제는 아니지만 이것은 최신 exe 및 구성 파일을 가지고 있는지 확인하는 확실한 방법입니다. 그리고 하루가 끝나면 업데이트는 새 명령에 액세스해야하거나 결국 새 릴리스에 주요 변경 사항이있는 경우에만 문제가됩니다.


3
하나는 -이이 업데이트 얻을 수있는 가장 좋은 방법입니다 것으로 나타났습니다 NuGet.exe 뿐만 아니라NuGet.targets (중요하다) 파일을. NuGet.targets새 파일에 다시 적용 할 수 있도록 파일 에 대한 사용자 지정 (예 : 사용자 지정 PackageSources) 을 저장했는지 확인하십시오 .
Jesse Webb 2013 년

매력처럼 나를 위해 일한 대단한!! 정보 주셔서 감사합니다
Gayan

-3

블로그에서 David Ebbo의 게시물보기

기본적으로 다음을 포함하는 .sln 파일 옆에 NuGet.Config 파일을 생성하기 만하면됩니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear/>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
    <add key="aspnetwebstacknightlyrelease" value="https://www.myget.org/f/aspnetwebstacknightlyrelease/" />
  </packageSources>
</configuration>

1
이 질문은 패키지 복원을 사용할 때 nuget.exe를 최신 버전으로 자동 업데이트하는 방법을 묻습니다. David Ebbo의 블로그 게시물에서는 nuget.exe를 사용하여 패키지를 복원하는 방법 만 설명합니다.
Frith

당신은 아마 질문 및 허용 대답의 제목을보고 당신이 다음에 대답 질문의 일부를 지정해야합니다, ...이 대답은 잘못을 고려하기 쉬운
옌스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.