VS2012、C#、XAML、Windows Phone7 アプリ (Win7/VS2010 から移行したばかり)。
WP7 アプリを Win8/VS2012 に移行しました。(以下の問題が間違った DLL を指している可能性があることを示している可能性がある場合に備えて、これについて言及します。) アプリは問題なく移行されました。私は、VS2012 でプロトタイプを作成した追加の非同期処理を追加する過程にあり、VS によって以下が正しくないというフラグが立てられています。
var _Token = await Task.Run(() => (Token)_Serializer.ReadObject(_Response.GetResponseStream()));
VS は、「System.Threading.Tasks.Task には 'Run' の定義が含まれていません」と言っています。WP7 アプリの System.Threading.Tasks の参照は、\packages\Microsoft.Bcl.1.0.16-rc\lib\sl4-windowsphone71\System.Threading.Tasks.dll を指しています。
VS2012 への移行を完了するために、NuGet経由で Microsoft.Bcl.1.0.16-rc を追加しました。これは間違っていましたか?以前は AsyncCtpLibrary_Phone を使用していましたが、Microsoft.Bcl.Async を取得すると次のようなビルド エラーが解決されるとアドバイスされました。
タイプ「System.Threading.Tasks.Task」は、AsyncCtpLibrary_Phone.dll と「c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0\mscorlib.dll」の両方に存在します。Microsoft.Bcl.Async を追加した後、wp7 アプリは正しくビルドされ、実行されました。
Task.Run の問題が発生したのは、VS2012 でプロトタイプを作成した新しい非同期コードを削除しようとした後でした。
app.config には次のエントリが含まれています。
<dependentAssembly bcl:name="System.Threading.Tasks">
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.11.0" newVersion="1.5.11.0" />
</dependentAssembly>
インストールする必要がある追加のパッケージはありますか?
前もって感謝します、ポール