2015-01-16 2 views
0

단일 솔루션 내의 수많은 프로젝트에 의존하는 프레임 워크 용 패키지를 만들었습니다. 나는 프레임 워크와 솔루션 내의 다양한 프로젝트를위한 nuget 패키지를 만들고 싶다. Framework.Framework.nuspec에서Nuget 패키지 누락 인터페이스

는, 나는 다음과 같은 의존성 선언 :

<dependencies> 
     <group> 
      <dependency id="Framework.CompositionRoot" version="1.0" /> 
      <dependency id="Framework.Services" version="1.0" /> 
      <dependency id="Framework.Domain" version="1.0" />        
     </group> 
    </dependencies> 

그리고 각 프로젝트 파일에

는 다음과 같은 종속성이 Framework.CompositionRoot.nuspec, 같은 자신의 nuspec 파일을 가지고 있습니다 :

<dependencies> 
     <group> 
      <dependency id="Super.Services" version="1.0" /> 
      <dependency id="Super.Data" version="1.0" /> 
      <dependency id="Super.Domain" version="1.0" />        
     </group> 
    </dependencies> 

다른 프로젝트에서 Framework.Framework를 설치하면 일부 종속 Nuget 패키지는 설치되지만 다른 일부는 설치되지 않는 것으로 보입니다. 이 경우 Framework.CompositionRoot 및 Framework.Services는 설치하지만 Framework.Domain은 설치하지 않습니다.

Framework.Domain은 고유 한 nuspec 파일을 솔루션에 포함하고 있으며 생성 된 Framework.Framework.nupkg 파일은 Framework.Domain을 종속성으로 표시합니다. Framework.Framework는 프레임 워크가 아닌 프로젝트에만 설치되었습니다 .Domain, Framework.Framework를 설치하면이 파일을 설치해야합니다.

솔루션 참조를 보면 Framework.Domain.dll이 추가되었지만 해당 도메인에 선언 된 인터페이스의 절반이 누락되었습니다. (누락 된 인터페이스가 공용으로 선언되었는지 확인했습니다.) 그러나 lib 폴더에 dll을 복사/붙여 넣고 수동으로 참조하면 모든 인터페이스가 있습니다.

도움을 주시면 감사하겠습니다.

답변

0

이것은 기본적으로 이전 버전을 설치하는 누겟 때문이었습니다. Framework.Domain은 패키지 관리자를 통해 볼 때 설치된 패키지 목록에 없지만 packages.config에 표시되었으며 인터페이스가 포함되지 않은 이전 버전이 있습니다. (. Nuget 기본적으로 의존성의 가장 낮은 버전을 설치합니다 설치)

을이 문제를 해결하기 위해, 나는 패키지를 제거하고 플래그를 사용하여 재설치 :

-DependencyVersion "HighestPatch을".