2014-04-13 4 views
2

휴대용 클래스 라이브러리 컬렉션에 종속되어있는 휴대용 클래스 라이브러리를 설치하는 nuget 패키지를 생성하려고합니다. 패키지를 만들고 문제없이 설치할 수 있지만 새 패키지가 설치된 응용 프로그램을 실행하면 .NET 4.5가 실행됩니다. 클래스 라이브러리 테스트 프로젝트에서 다음 예외가 발생합니다.휴대용 클래스 라이브러리를 참조하는 nuget 패키지 빌드

threw exception: 
System.IO.FileNotFoundException: Could not load file or assembly 
    'Microsoft.Data.Services.Client.Portable, Version=5.6.1.0, Culture=neutral, ... 

내 nuspec 파일에 다음 종속성 섹션이 있습니다.

<dependencies> 
    <group targetFramework="portable-net45+wp80+win"> 
    <dependency id="Microsoft.Bcl" version="1.1.6" /> 
    <dependency id="Newtonsoft.Json" version="6.0.2" /> 
    <dependency id="Microsoft.Data.Services.Client" version="5.6.1" /> 
    <dependency id="Microsoft.AspNet.WebApi.Client" version="5.1.1" /> 
    </group> 
</dependencies> 

나는 과거에 수많은 nuget 패키지를 만들었지 만이 문제는 본 적이 없습니다. PCL dll에서 각 라이브러리의 PCL 버전을 참조하는 것과 관련이 있다고 추측합니다. 그러나이 누겟을 제대로 작동시키는 방법을 알지 못합니다.

무엇이 누락 되었습니까?

답변

0

이것은 Microsoft.Data.Services.Client NuGet 패키지의 문제처럼 보입니다. .NET Framework 및 Silverlight 버전과 같이 이식 가능한 버전에 대해 다른 어셈블리 이름을 사용하고 있습니다. 따라서 휴대용 어셈블리는 Microsoft.Data.Services.Client.Portable.dll에 대해 컴파일되지만 NuGet 패키지가 .NET 프로젝트에 설치되면 Microsoft.Data.Services.Client.dll이 대신 참조됩니다.

일반적으로 이와 같은 패키지는 모든 플랫폼에서 동일한 어셈블리 이름을 사용해야합니다 (API는 플랫폼간에 호환 가능해야 함).

+0

그래서 너겟이 올바르게 작동하도록 변경하려면 어떻게해야합니까? –

+0

@JayTraband 그것에 대해 할 수있는 일이별로 없습니다. 고정 버전의 NuGet 패키지가 게시 될 때까지 기다려야합니다. –

+0

Microsoft.Data.Services.Client.Portable Nuget을 의미합니까? –

관련 문제