2013-01-19 7 views
1

공유 네트워크 드라이브에있는 로컬 피드와 일반 공개 너겟 피드의 패키지를 찾는 솔루션에서 Nuget 패키지 복원을 실행하려고합니다.로컬 피드를 사용하여 Nuget 패키지 복원

내가 지금까지 시도한 것은 솔루션에서 Nuget 패키지 복원을 활성화 한 다음 Nuget.targets를 편집하고 PackageSources 변수를 변경하는 것이지만 작동하지 않는 것입니다. 이것이 가능한가? .

<ItemGroup Condition=" '$(PackageSources)' == '' "> 
    <!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used --> 
    <!-- The official NuGet package source (https://nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list --> 
    <PackageSource Include="https://nuget.org/api/v2/" /> 
    <PackageSource Include="\\mynetworkshare\Development\NugetPackages" /> 
</ItemGroup> 

내가 빌드 얻을 오류가 내가 가진 " 'MyCustomPackage'패키지 버전 '1.0.0'를 찾을 수 없습니다 :

내 Nuget.targets 파일은 패키지 소스 섹션에 대해 다음과 같습니다 확인한 nupkg는 \\mynetworkshare\Development\NugetPackages\MyCustomPackage.1.0.0.nupkg에 존재. 작동합니다 NuGet.targets의 소스를 업데이트

답변

3

나를위한 해결책은 bhuvak의 답과 함께 일부 패키지의 이름을 바꾸어야했습니다.

필자는 심볼 패키지 (MyCustomPackage.1.0.0.symbols.nupkg과 비슷한 이름)를 만들고 내 로컬 패키지 피드 폴더의 패키지를 사용하고있었습니다. 그러나 패키지 복원은 이러한 패키지를 선택하지 않는 것 같습니다. 파일 이름의 부분 인 .symbols 부분을 제거하고 이름을 바꿔야했습니다.

내가 해낸 후에는 패키지 복원이 훌륭하게 작동합니다.

+0

고마워요, 2 일 동안 솔루션을 찾지 못하고 결국 저를 구해 줬습니다. 왜이 페이지가 왜 낫 복원 문제를 검색 할 때 맨 위에 오지 않았는지 모르겠다. 다시 한 번 감사드립니다. – Esen

2

을. 당신이 공식 NuGet 소스와 대상 파일에 명시 적으로 지역 공급 모두를 추가했는지 확인하십시오. 당신이 몰래 무슨 오류?

+0

업데이트 된 질문보기 내가 얻은 오류는 네트워크 공유에있는 패키지를 찾을 수 없다는 빌드입니다. – Evan

1

우리는 @evan과 비슷한 문제가있었습니다. CreateNewNuGetPackageFromProjectAfterEachBuild 패키지를 사용하여 TFS 2013 빌드 서버에 NuGet 패키지를 만듭니다. 우리는 로컬의 공유 기반 패키지 소스를 가지고 있으며 nupkg 파일을 빌드 출력에서이 공유로 복사합니다. NuGet 패키지 복원이 로컬 소스에서 패키지를 찾지 못하기 때문에 이러한 패키지를 참조하는 빌드가 실패한 것으로 나타났습니다.

nuget.exe list <search-term-for-our-packages> -allversions 

항상 성공하고 우리의 각 패키지 버전을 나열 빌드 서버의 명령 줄에서 NuGet을 실행

우리가 이상한 행동을 얻는다. 우리가 실패한 빌드의 \src 폴더로 이동

nuget.exe restore .\oursolution.sln 

을 실행할 때, 우리는 항상 얻을 :

Unable to find version '1.0.6.341' of package 'our.package.name'. 

내가 nuget.config와 함께 연주 및 버전 사이에 교환,이 문제를 해결하기 위해 모든 종류의 것들을 시도 nuget.exe를 수정했지만 수정 사항은 단순히 nupkg 파일의 이름 지정과 관련이 있습니다. 기본적으로 CreateNewNuGetPackageFromProjectAfterEachBuild은 패키지 ID와 빌드 구성 및 대상을 생성하는 nupkg의 이름을 지정합니다. 예 : nuget list 작동하지만 nuget restore이 실패 할 우리의 패키지 소스 파일과

our.package.name.1.0.6.341.Release.AnyCPU.nupkg 

. 그때

our.package.name.1.0.6.341.nupkg 

nuget listnuget restore 작업에 패키지의 이름을 변경하는 경우 예상대로.

수정 사항은 구성 설정 및 대상을 포함하지 않도록 CreateNewNuGetPackageFromProjectAfterEachBuild의 구성 파일을 수정하기 만하면됩니다. 그러나 nuget restore은 패키지 파일 이름에 의존하는 반면 nuget list은 그렇지 않은 이유는 무엇입니까?

관련 문제