6

Bir projeyi Taşınabilir Sınıf Kitaplığı'na yeniden yazmaya çalışıyorum. Ancak sorun, Async CTP kullanıyor olması ve bunu WP ve Windows Mağaza Uygulaması için bir kütüphane olarak derleyemem. Ben referans AsyncCtpLibrary.dll dahil etmezseniz, derleyiciTaşınabilir Sınıf Kitaplığı ile Async CTP Kullanma

tür veya ad alanı adı 'Görevler' ad 'System.Threading' de var olmadığını söyler (bir derleme başvurusu eksik?)

bunu eklerseniz, derleyici hala aynı hataları diyor ve bir uyarı ekler:

o çerçeve montaj dolaylı bir bağımlılığı var çünkü birincil referans "AsyncCtpLibrary" çözülemedi

"mscorlib, Sürüm = 4.0.0.0, Kültür = tarafsız, PublicKeyToken = b77a5 Şu anda hedeflenen çerçevede çözülemeyen c561934e089 ". " .NETPortable, Sürüm = v4.0, Profil = Profile104" . Bu sorunu gidermek için, "AsyncCtpLibrary" başvurusunu kaldırın veya uygulamanızı "mscorlib, Sürüm = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089" içeren bir çerçeve sürümüne yeniden hedefleyin.

Buna nasıl katlanmalıyım?

cevap

3

Basit cevap - AsyncCTP çalışmıyor Visual Studio 2012 ve herhangi bir projede kullanılamaz. .NET 4.0 ve Silverlight 5 için, benzer bir şekilde çalışan NuGet'ten Async Targeting Pack'i yükleyebilirsiniz.
Async/await, yalnızca WinRT, .NET4.5 veya Windows Phone 8'i hedeflerken ve daha sonra kullanım oldukça sınırlı olsa da Taşınabilir Sınıf Kitaplığı'nda bulunur. Burada daha fazla ayrıntıya giremiyorum çünkü Windows Phone 8 SDK hala NDA'nın altında.
WP7.5 ve VS2012 için, async/wait'in nasıl kullanılacağı şu anda yoktur, ancak bu platform için güncellenmiş Async Targeting Pack'in bir zamanlar kullanılabilir olması gerekir.
Ayrıca AsyncCTP ve Async Targeting Pack'in Taşınabilir Sınıf Kitaplıklarında kullanılamayacağını ve gelecekte değişmeyeceğini unutmayın. Sonuç VS2010'da Portable Class Libraries'de async/not beklemesini kullanamazsınız.

+0

referans olarak kullanabilirsiniz. Bu nedenle, her proje için iki farklı sınıf versiyonunu saklamalıyım? – passick

+2

VS2010'da bu sorunu çözdüm - İki csproj dosyası, bir WinRT ve WP7.5 için ikinci uygulama mantığım için bir proje klasörü ile bitti. Daha sonra her iki projede de aynı dosyalara başvuruyorum ve ayrıca #if gibi koşullu yapı değişkenlerini de kullanıyorum. Bazı sınırlamalarla oldukça iyi çalıştı. –

+1

Ayrıca, dövüş kulübünün ilk kuralı olan wp8sdk'de yer alacağınızdan bahsetmiyorsunuz bile! :) – Stuart

1

AsyncCTP projesini AsyncCTP yerine kullanmayı deneyebilirsiniz. Yardım edip edemeyeceğini bilmiyorum. Sen (hala .NET4.0 hedefleyebilir) bu olsa işe gitmek için VS2012 içinde derlemek gerekir:

+0

Bunu yapmanın başka yolu var mı? Çünkü vs2010 ile Windows 7 altında wp için geliştiriyorum. – passick

+1

VS2012'de uyumsuz desteğe gereksinim duyan projeyi derlemeye çalışabilir ve daha sonra bu dll'leri VS210 projenizde – RoelF

5

Yalnızca .NET 4.5 ve Window Store uygulamalarını hedeflerken taşınabilir olarak uyumsuz/beklemeyi kullanabilirsiniz. Taşınabilir dışında, .NET 4.0 ve Silverlight 5 için Eşzamansız Hedefleme Paketi'ni kullanabilirsiniz.

Bununla birlikte, Telefon 7.5'i hedeflerken taşınabilir olarak async/await için destek ekleyen güncellenmiş bir async hedefleme paketi üzerinde çalışıyoruz. Silverlight 5 ve .NET 4.0, bkz .: http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2691068-support-async-in-portable-class-libraries. Bunu Ekim ayı başlarında göreceksiniz.

Güncelleştirme10: Yalnızca bir beta sürümü yayınlıyoruz: http://blogs.msdn.com/b/bclteam/archive/2012/10/22/using-async-await-without-net-framework-4-5.aspx.