2013-04-01 5 views
1

Winforms 용 애플리케이션을 만드는 중입니다. 나중에 Windows Phone 용 응용 프로그램을 제공 할 계획입니다. 그래서 휴대용 라이브러리를 사용하기로 결정했습니다. 나는 나의 휴대용 라이브러리를 대상 프레임 워크를 다음과 같은 한 : 내 휴대 라이브러리에서휴대용 라이브러리 용 Google 드라이브

.NET Framework 4 and higher 
Silverlight 4 and higher 
Windows Phone 7 and higher 
.NET for Windows Store apps 

, 내가 언급 한 구글 드라이브 SDK의 라이브러리 다음 : 내 솔루션을 빌드 할 때

DotNetOpenAuth.dll 
Google.Apis.Authentication.OAuth2.dll 
Google.Apis.dll 
Google.Apis.Drive.V2.dll 
Google.Apis.OAuth2.V2.dll 
log4net.dll 
Newtonsoft.Json.Net35.dll 

지금, 그것은 잘 작동까지 내가이 참조들을 어디서나 가지고 있기 때문에. 그러나 이러한 코드를 다음과 같이 사용하면 :

using Google.Apis.Authentication; 
using File = Google.Apis.Drive.v2.Data.File; 
public interface IUtilities 
{ 
    void SampleMethod(IAuthenticator authenticator, File file); 
} 

이제 컴파일 오류가 발생합니다. 나는 솔루션을 구축하려고하지만 때이 라이브러리를 사용하여 더 많은 코드를 작성하면 나는 비슷한 방법으로 모든 객체에 대한 오류,

Error 1 The type or namespace name 'IAuthenticator' could not be found (are you missing a using directive or an assembly reference?) 

Error 3 The type or namespace name 'Google' could not be found (are you missing a using directive or an assembly reference?) 

에 따라 얻을. 아무도 이것을 이해할 수 있습니까? 더 자세한 정보가 필요하면 알려주세요. 감사.

답변

3

휴대용 클래스 라이브러리에서 참조하는 모든 라이브러리는 이식 가능해야하며 호환 가능한 플랫폼을 지원해야합니다. Json.NET에는 휴대용 버전이 있지만 사용중인 다른 라이브러리는 그렇지 않습니다. 이러한 라이브러리에 대한 소스 코드를 가져 와서 PCL로 포팅하거나 제공하는 기능에 대한 이식 가능한 추상화를 만들어 해당 추상화를 사용하여 플랫폼 별 코드를 호출 할 수 있습니다.

다음

휴대용 클래스 라이브러리를 사용하는 방법에 대한 자세한 내용의 일부 소스입니다
+0

Daniel :하지만 비 PCL이 PCL에서 참조되면 컴파일 오류가 발생합니다. 아니면 우리가 그들을 참조하도록해서는 안됩니다. 나는 이것을 시도했다. 하지만 확실하지 않아서 런타임 오류가 발생하는 이유는 무엇입니까? 그러나 나는 그들 중 몇몇과 이전에 많은 것을 방문했지만 주어진 참고 문헌을 살펴볼 것이다. 그러나 이번에는 더 심각하게 그들을 보게 될 것입니다. 감사합니다 – Sandy

+0

@rapsalands 예, 잘못된 DLL을 참조하려고 할 때 오류가 발생하는 것이 타당합니다. 지원되지 않는 프로젝트 간 참조를 추가하려고하거나 대상 플랫폼을 지원하지 않는 NuGet 패키지에 대한 참조를 추가하려고하면 오류가 발생합니다. DLL에 대한 파일 참조는 오류가 발생하지 않는 유일한 상황입니다. 시간이 지남에 따라 더 많은 라이브러리가 NuGet으로 마이그레이션 될 것이므로 문제는 줄어들지 않을 것이라고 생각합니다. –

+0

나는 당신의 요점을 알아 냈다. 그러나 어떤 기능이 빌드 실패의 원인인지 알 수있는 방법은 무엇입니까? 컴파일 오류가 발생하면 인터페이스에서 해당 부분을 마이그레이션 할 수 있습니다. 그러나 오류가 없다면 내 솔루션을 실패하게 만드는 기능을 선택하는 것은 매우 어려울 것입니다. – Sandy

관련 문제