6

프로젝트를 휴대용 클래스 라이브러리로 다시 작성하려고합니다. 하지만 문제는 Async CTP를 사용하고 WP 및 Windows Store App 용 라이브러리로 컴파일 할 수 없다는 것입니다. 내가 참조 AsyncCtpLibrary.dll을 포함하지 않는 경우, 컴파일러는휴대용 클래스 라이브러리와 함께 비동기 CTP 사용

형식 또는 네임 스페이스 이름 '작업은'네임 스페이스 '하여 System.Threading'에 존재하지 않는 것을 말한다 (당신이 어셈블리 참조가없는?)

내가 그것을 포함하는 경우, 컴파일러는 여전히 같은 오류를 말한다 및 경고 추가 :

는 프레임 워크 어셈블리에 대한 간접 종속성이 있기 때문에 주요 기준 "AsyncCtpLibrary는"확인할 수 없습니다

"mscorlib에, 버전 = 4.0.0.0, 문화 = 중립, PublicKeyToken = b77a5 c561934e089 "는 현재 대상 프레임 워크에서 확인할 수 없습니다. ".NETPortable, Version = v4.0, Profile = Profile104". 이 문제를 해결하려면 "AsyncCtpLibrary"참조를 제거하거나 "mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089"가 포함 된 프레임 워크 버전으로 응용 프로그램의 대상을 다시 지정하십시오.

어떻게 처리해야합니까?

답변

3

간단한 대답 - AsyncCTP가 작동하지 않습니다 Visual Studio 2012 및 모든 프로젝트에서 사용할 수 없습니다. .NET 4.0 및 Silverlight 5의 경우 비슷한 방식으로 작동하는 NuGet의 Async Targeting Pack을 설치할 수 있습니다.
Async/await은 WinRT, .NET4.5 또는 Windows Phone 8을 대상으로하는 경우에만 지원되는 Portable Class Library에 있으며 사용이 제한적입니다. Windows Phone 8 SDK가 여전히 NDA에 속하기 때문에 자세한 내용은 여기에 들어갈 수 없습니다.
WP7.5 및 VS2012의 경우 현재 async/await를 사용하는 방법이 없지만이 플랫폼의 업데이트 된 Async Targeting Pack은 언젠가 사용할 수 있어야합니다.
AsyncCTP 및 Async Targeting Pack은 휴대용 클래스 라이브러리에서 사용할 수 없으며 향후 변경 될 가능성이 없습니다. VS2010에서는 휴대용 클래스 라이브러리에서 async/await를 사용할 수 없습니다.

+0

그래서 각 프로젝트마다 서로 다른 두 클래스 버전을 유지해야합니까? – passick

+2

VS2010에서이 문제를 해결해 왔습니다. 두 개의 csproj 파일 (WinRT 용 및 WP7.5 용)이있는 응용 프로그램 논리에 대한 프로젝트 폴더가 하나만 있습니다. 나는 두 프로젝트에서 같은 파일을 참조 할 때 #if 등의 조건부 빌드 변수를 사용한다. –

+1

당신은 또한 당신이 wp8sdk - 싸움 클럽의 첫 번째 규칙에 관여하고 있을지도 모른다고 언급하지 않는 nda 아래에있어! :) – Stuart

1

AsyncCTP 대신 AsyncBridge 프로젝트를 사용해 볼 수 있습니다. 도움이 될지 모르겠습니다. 당신은 (당신은 여전히 ​​.NET4.0를 타겟팅 할 수 있습니다)이 그래도 일하러 가야 VS2012에서 컴파일해야합니다 :

+0

다른 방법이 있습니까? 왜냐하면 나는 Windows 7에서 vs2010을 사용하여 wp를 개발하고 있기 때문입니다. – passick

+1

VS2012에서 비동기 지원이 필요한 프로젝트를 컴파일하고 VS210 프로젝트에서이 DLL을 참조 할 수 있습니다. – RoelF

5

현재 .NET 4.5 및 Window Store 응용 프로그램을 타겟팅 할 때만 휴대용에서 async/await를 사용할 수 있습니다. 휴대 기기 외부에서는 .NET 4.0 및 Silverlight 5 용 비동기 타겟팅 팩을 사용할 수 있습니다.

그러나 Google은 전화 7.5를 타겟팅 할 때 휴대 기기의 async/await에 대한 지원을 추가 한 업데이트 된 비동기 타겟팅 팩을 개발하고 있습니다. , Silverlight 5 및 .NET 4.0, 참조 : http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2691068-support-async-in-portable-class-libraries. 10 월 초에이를 보게 될 것입니다.

업데이트 : http://blogs.msdn.com/b/bclteam/archive/2012/10/22/using-async-await-without-net-framework-4-5.aspx의 베타 버전을 출시합니다.

관련 문제