NuGet 패키지 .nupkg 파일을 로컬로 어떻게 설치합니까?


답변:


463

메뉴 도구옵션패키지 관리자

여기에 이미지 설명을 입력하십시오

이름과 폴더 위치를 지정하십시오. 확인을 클릭하십시오. NuGet 패키지 파일을 해당 폴더에 놓습니다.

프로젝트로 이동하여 마우스 오른쪽 버튼을 클릭하고 "Manage NuGet Packages" 를 선택한 다음 새 패키지 소스를 선택하십시오.

여기에 이미지 설명을 입력하십시오

여기 문서가 있습니다.


22
사실, 나는 1 단계를 몇 번 했어요. 그러나 설치된 패키지, 업데이트 또는 최근 패키지를 열 때 2 단계에서 패키지가 표시되지 않습니다.
Tom

2
내 화면에는 "NuGet offical package source"가 아닌 "Installed packages"아래에 "All"만 있고 사용자 정의 "newNuget"는 없습니다.
Tom

1
vs2010을 사용하고 있습니다. 지금 홈페이지에서 최신 너겟을 다운로드하여 설치하려고합니다. 다음을 클릭하십시오. 다음을 클릭하십시오. 그런 다음 오류 ... M $가 예상대로 알려진 문제의 링크가 있으며 서명 불일치가 있음을 확인한 다음 기존 덩어리를 제거해야하며 쉽게 해결할 수 있습니다. 알았어 컴퓨터를 다시 시작하고 다시 설치하면 동일한 오류가 발생하고 서명이 일치하지 않습니다. 이제 이전 버전이 사라져 새 버전을 설치하고 싶지 않습니다.
Tom

2
문제가 해결되었습니다. Windows-> 제어판에서 nuget을 제거했습니다. 그런 식으로 작동하지 않았습니다. VS를 시작하고 도구-> 확장 관리자로 이동 한 다음 거기에서 uninstall nuget을 누르십시오. VS를 다시 시작했습니다. 그런 다음 nuget을 다시 설치하면 효과가 있습니다. 이제 로컬 nupkg 파일도 표시됩니다 (편집 : 설치 탭이 아닌 온라인 탭에 있습니다. 게시 한 그림에서 실수했습니다). 도움을 주셔서 감사합니다 :)
Tom

1
아직 평판이 충분하지 않지만 VS2015에 대한 답변 답변에서 Michael에게 대답하기 위해 여전히 온라인에 가고 싶습니다. 나는 같은 문제가 있었지만 옵션에서 모든 온라인 소스를 선택 해제하면 오프라인 소스에서 작동합니다. 너겟 옵션 사진
Mick m

302

패키지 관리자 콘솔을 사용 Install-Package하여 -Source매개 변수에 패키지 파일이 포함 된 디렉터리의 경로를 지정하여 cmdlet을 호출 할 수도 있습니다 .

Install-Package SomePackage -Source C:\PathToThePackageDir\

2
커맨드 라인 도구로도 그런 일을 할 수 있습니까?
Poul K. Sørensen 2013 년

5
예. 이 -Source옵션은 nuget.exe 에서도 사용할 수 있습니다. 예 :nuget install SomePackage -Source C:\PathToThePackageDir
Enrico Campidoglio

16
-IncludePrerelease 플래그도 지정해야합니다. 그렇지 않으면 패키지 버전에 대시 접미어 (예 : "-beta1")가 있으면 Install-Package에서 찾을 수 없습니다.
Jeff Sharp

9
이것은 허용되는 것보다 훨씬 직접적인 답변입니다. 정보에 대해서 감사드립니다!
David Peters

2
VS 2017에서는 작동하지 않습니다 (f.ex 참조). @Granger의 답변.
RenniePet

124

.nupkg 파일의 경우 다음을 사용하고 싶습니다.

Install-Package C:\Path\To\Some\File.nupkg

7
효과가있는 것만 디렉토리 경로에 공백이 있으면 큰 따옴표로 묶으십시오.
Nikos

4
동의하다. 그리고 절대 경로 만 작동한다고 언급 할 가치가 있습니다
Sebastian J.

5
VS 2017에서는 작동하지 않습니다 (f.ex 참조). @Granger의 답변.
RenniePet

1
VS2017에서 나를 위해 일한 @RenniePet (그러나 .nupkg다른 패키지가 모두 저장된 동일한 디렉토리에 이미 저장했습니다)
Rafalon

1
그것은 나를 위해 작동하지 않습니다, 나는 VS2013 버전 12.0.21..5 및 Nuget 패키지 관리자 2.12.0.817을 사용하고 있습니다 :(
Niraj Trivedi

56

Visual Studio 2017 및 새로운 .csproj 형식

더 이상 Install-Package를 사용하여 로컬 파일을 가리킬 수 없습니다. ( PackageReference요소가 파일 경로를 지원하지 않기 때문에 패키지의 ID 만 지정할 수 있기 때문일 수 있습니다.)

먼저 Visual Studio에 패키지 위치를 알려주고 프로젝트에 추가 할 수 있습니다. 대부분의 사람들은 NuGet 패키지 관리자로 이동하여 로컬 폴더를 소스로 추가합니다 (메뉴 도구옵션NuGet 패키지 관리자패키지 소스 ). 그러나 그것은 의존성 위치가 나머지 코드베이스와 커밋되지 않음을 의미합니다.

상대 경로를 사용하는 로컬 NuGet 패키지

특정 솔루션에만 적용되는 패키지 소스가 추가되며 상대 경로를 사용할 수 있습니다.

nuget.config파일과 동일한 디렉토리에 파일 을 작성 해야 .sln합니다. 원하는 패키지 소스로 파일을 구성하십시오. 다음에 Visual Studio 2017에서 솔루션을 열면 해당 소스 폴더의 .nupkg 파일을 사용할 수 있습니다. 패키지 관리자에 소스가 표시되며 프로젝트의 패키지를 관리 할 때 "찾아보기"탭에서 패키지를 찾을 수 있습니다.

nuget.config시작 하는 예는 다음과 같습니다 .

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="MyLocalSharedSource" value="..\..\..\some\folder" />
    </packageSources>
</configuration>

뒷이야기

이 기능의 사용 사례는 컴퓨터에 단일 코드 리포지토리의 여러 인스턴스가 있다는 것입니다. 코드베이스 내에 .nupkg 파일로 게시 / 배포 된 공유 라이브러리가 있습니다. 이 접근 방식을 사용하면 코드베이스 전체의 다양한 종속 솔루션이 동일한 리포지토리 인스턴스 내에서 패키지를 사용할 수 있습니다. 또한 Visual Studio 2017을 새로 설치 한 사용자는 원하는 곳에서 코드를 체크 아웃하면 종속 솔루션이 성공적으로 복원 및 빌드됩니다.


VS 2017을 사용하고 있으며이 문제가 발생하지 않았습니다. 방금 -Source인수를 전달 Update-Package했으며 정상적으로 작동했습니다. 어쩌면 Install-Package명령 과 관련이 있습니까?
Greg Burghardt 2016 년

48
  1. 솔루션 옆에 LocalPackages라는 폴더에 파일을 추가하십시오 (이를 호출 할 필요는 없지만 그에 따라 다음 단계에서 xml을 조정하십시오)
  2. 솔루션 파일 옆에 NuGet.config라는 파일을 다음 내용으로 만듭니다.

    <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <add key="LocalPackages" value="./LocalPackages" />
        </packageSources>
        <activePackageSource>
          <!-- this tells that all of them are active -->
          <add key="All" value="(Aggregate source)" />
        </activePackageSource>
     </configuration>
  3. 솔루션이 Visual Studio에서 열려 있으면 닫았다가 다시여십시오.

이제 패키지가 브라우저에 나타나거나 Install-Package를 사용하여 설치 가능해야합니다.


환상적인 답변, 내가 찾던 솔루션. 감사!
Jonathan

1
Nuget 리포지토리에있는 것과 이름이 같은 패키지가 있기 때문일 수 있지만 Install-Package를 실행하기 전에 패키지 관리자 콘솔을 사용하고 패키지 소스를 LocalPackages로 선택해야했습니다.
누가

42

.nupkg 파일이 있고 .dll 파일 만 있으면 확장명을 .zip으로 변경하고 lib 디렉토리를 찾으면됩니다.


3
파일을 zip 파일로 취급하면 파일 이름에 공백이있는 파일은 %로 추출됩니다 (공백 대체). NuGet을 사용하여이 설치를 피하려면
Rahatur

2
실제로는 확장명을 바꿀 필요조차 없습니다. 파일을 마우스 오른쪽 단추로 클릭 한 다음 연결 프로그램을 선택하고 .zip 파일을 열 수있는 응용 프로그램을 찾으면 .nupkg 파일을 열면 필요한 dll 파일을 지정된 폴더로 추출 할 수 있습니다.
jyao

1
내가 필요한 최고의 솔루션
Leo Nguyen

8

업데이트를하기 위해 Visual Studio 2015 사용자에게는 약간의 변경 사항이 있습니다.

패키지를 수동으로 사용하거나 설치하려면 도구 -> 옵션 -> NuGet 패키지 관리자 -> 패키지 소스로 이동하십시오.

추가 버튼을 클릭하고 소스를 선택한 다음 " 업데이트 " 를 클릭 하여 패키지의 폴더 위치를 업데이트하고 원하는 경우 원하는 패키지 소스 이름을 편집하십시오.

여기에 이미지 설명을 입력하십시오

바로 솔루션을 클릭하고, 귀하의 추가 패키지를 선택하려면 " Nuget 패키지 관리 "

드롭 다운 목록은 오른쪽에 있으며 찾아보기를 선택하여 폴더 소스에서 지정한 패키지를 찾아보십시오. 해당 폴더 소스에 너겟 패키지가 없으면 비어 있습니다.

여기에 이미지 설명을 입력하십시오


6

Linux에서 NuGet CLI를 사용하면 명령이 비슷합니다. my.nupkg을 설치하려면 다음을 실행하십시오.

nuget add -Source some/directory my.nupkg

그런 다음 dotnet restore해당 디렉토리에서 실행하십시오.

dotnet restore --source some/directory Project.sln

또는 해당 디렉토리를 NuGet 소스로 추가하십시오.

nuget sources Add -Name MySource -Source some/directory

다음 이야기 msbuild와 함께 그 디렉토리를 사용 /p:RestoreAdditionalSources=MySource하거나 /p:RestoreSources=MySource. 두 번째 스위치는 다른 모든 소스를 비활성화하므로 오프라인 시나리오에 적합합니다.


1
Mac에서는 (Linux도 가정하고 있음 ) 버그로 인해 (또는 VS Mac ) nuget sources사용 하고 있다면 의지 할 수 없습니다 . 로컬 소스를 수동으로 추가 해야했습니다 (이 GH 문제 참조 ). dotnet restore~/.nuget/NuGet/NuGet.Config
개브
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.