2014-09-29 4 views
2

내 자신의 NuGet 서버를 설정할 수있었습니다 (here 설명). 서버 Packages 폴더에는 MyPackage의 여러 버전 (예 : 1.0.8.0 및 1.0.9.0)이 포함되어 있습니다. 버전을 지정하지 않은 기본 방법으로 설치하면 성공적으로 설치됩니다. 내가 명시 적으로Nuget 특정 버전을 설치하지 못했습니다

Install-Package MyPackage -Version 1.0.9.0 

을 할 때 다음과 같은 메시지가 잘못 :

설치 - 패키지 : 패키지 'myPackage에' 버전 '1.0.9.0'을 (를) 찾을 수 없습니다입니다. 라인에서 1 문자 : 16 + 하는 설치 패키지 < < < < myPackage에 -Version 1.0.9.0 + CategoryInfo : NotSpecified (:) InvalidOperationException이 + FullyQualifiedErrorId [패키지 설치] NuGetCmdletUnhandledException, NuGet.PowerShell.Commands을 .InstallPackageCommand

UPDATE : 패키지 관리자 콘솔에서 Package Source가 "ALL"로 설정되어있는 경우 이 오류 메시지가 나타납니다.

Install-Package : **There are multiple root elements. Line 42, position 2.** 
At line:1 char:16 
+ install-package <<<< dfct.shell.core.contracts -Version "1.0.8.0" 
+ CategoryInfo   : NotSpecified: (:) [Install-Package], XmlException 
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand 

여러 루트 요소, 행 42 : 나는 내 자신의 소스로 설정하면, 다른 오류가 나타납니다 (여기서, 사실, 패키지가 발견 될 것으로 예상된다)? 어떤 파일에서? 왜 그럴까요? 나는 서버 측에 뭔가 잘못되었다고 생각하지만 그것이 무엇인지 알 수는 없다.

+0

패키지 관리자 콘솔에서 오류가 발생하면'$ error [0] .exception.stacktrace'를 사용하여 예외에 대한 전체 스택 추적을 살펴보십시오. 그것은 NuGet에서 문제가 발생하는 곳을 가리켜 야합니다. –

답변

5

MyPackage.1.0.9.0.nupkgMyPackage.1.0.9.0.symbols.nupkg의 공존이 NuGet을 충돌하게 만든다고 밝혀졌다. NuGet은 OData를 전송으로 사용하고 OData의 어딘가에서는 "다중 루트 노드"에 대해 불평하면서 두 패키지를 직렬화/비 직렬화 할 수 없습니다. 그래서 간단히 명령 줄에서 -symbols을 제거하여 디버그 패키지 생성을 비활성화하면 이제는 모두 정상적으로 작동합니다.

+0

그러나 오류 메시지가 다른 동일한 문제가있었습니다. 패키지 설치가 코드 1로 실패합니다. 같은 디렉토리에서 심볼 패키지를 제거하면 문제가 해결되었습니다! – Adrian

+0

또한 같은 이름의 라이브러리가 중복되지 않도록하십시오. 제 경우에는 느슨한 "Copy of MyPackage.X.X.X.nupkg"파일이 폴더에 있습니다. – Isaac

관련 문제