6

プロジェクトをポータブルクラスライブラリに書き直そうとしています。しかし、問題は、非同期CTPを使用していることであり、WPおよびWindowsStoreAppのライブラリとしてコンパイルできません。参照AsyncCtpLibrary.dllを含めない場合、コンパイラは次のように言います。

タイプまたは名前空間の名前「Tasks」が名前空間「System.Threading」に存在しません(アセンブリ参照がありませんか?)

私がそれを含めると、コンパイラは同じエラーを言い、警告を追加します:

プライマリ参照「AsyncCtpLibrary」は、現在ターゲットになっているフレームワークでは解決できなかったフレームワークアセンブリ「mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b77a5c561934e089」に間接的に依存しているため、解決できませんでした。「.NETPortable、Version = v4.0、Profile=Profile104」。この問題を解決するには、参照「AsyncCtpLibrary」を削除するか、アプリケーションを「mscorlib、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=b77a5c561934e089」を含むフレームワークバージョンに再ターゲットします。

どのように私はそれに耐えるべきですか?

4

3 に答える 3

5

現在、.NET4.5およびWindowStoreアプリを対象とする場合、ポータブルでのみasync/awaitを使用できます。ポータブル以外では、Async Targeting Pack for.NET4.0およびSilverlight5を使用できます。

ただし、Phone 7.5、Silverlight 5、および.NET 4.0を対象とする場合、ポータブルでasync / awaitのサポートを追加する、更新された非同期ターゲティングパックに取り組んでいます。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

于 2012-09-26T14:43:49.783 に答える
3

簡単な答え-AsyncCTPはVisualStudio2012で機能しておらず、どのプロジェクトでも使用できません。.NET4.0およびSilverlight5の場合、同様の方法で機能するAsyncTargetingPackをNuGetからインストールできます。
Async / awaitは、WinRT、.NET4.5、またはWindows Phone 8を対象とする場合にのみサポートされるポータブルクラスライブラリにあり、それでも使用はかなり制限されています。Windows Phone 8 SDKはまだNDAの下にあるため、ここではこれ以上詳しく説明できません。
WP7.5とVS2012の場合、現在async / awaitを使用する方法はありませんが、このプラットフォーム用に更新されたAsyncTargetingPackがいつか利用可能になるはずです。
また、AsyncCTPおよびAsync Targeting Packは、ポータブルクラスライブラリでは使用できず、将来変更される可能性は低いことにも注意してください。その結果、VS2010では、ポータブルクラスライブラリでasync/awaitを使用できなくなります。

于 2012-09-26T11:23:05.540 に答える
1

AsyncCTPの代わりにAsyncBridgeプロジェクトを使用してみることができます。それが役立つかどうかはわかりません。ただし、これを機能させるには、VS2012でコンパイルする必要があります(.NET4.0をターゲットにすることもできます)。

于 2012-09-26T08:45:50.240 に答える