1

MonoTouch を使用して Visual Studio 2012 でタスクを動作させようとしています。ALPHA チャネルを使用しており、最新のリリースがインストールされています。

ソリューションには 3 つのプロジェクトがあります: 1. 非同期メソッドを使用する PCL (158 のターゲット プラットフォーム) 2. タッチ 3. Android

このコードはコンパイルされ、デプロイおよび実行できます。しかし、iPhone クライアントから電話をかけると、次のようになります。

var asyncResult = await MyClass.DoStuff();
Console.WriteLine("doing stuff completed: " + asyncResult);

次の結果が得られます。

System.PlatformNotSupportedException: このプラットフォームはサポートされていません

コードの一部を待機します。-で書いてもTask.ContinueWith同じ結果です。

興味深いのは、Visual Studio + MonoTouch でしか動作しないことです。他のすべての構成では、このコードが正しく起動されます (WIN+VS+Android、WIN+VS+Android、MAC+XS+iOS、MAC+XS+Android)

SDK のバージョンは、最新の ALPHA リリースと同期されています。

例外の詳細: 未処理の例外:

System.PlatformNotSupportedException: This platform is not supported.
2013-07-25 11:45:32.384 iPhone[1817:907] Unhandled managed exception: This platform is not supported. (System.PlatformNotSupportedException)
  at System.ExecutionContextLightup.Run (System.ExecutionContextLightup executionContext, System.Action`1 callback, System.Object state) [0x00000] in <filename unknown>:0 
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+MoveNextRunner.Run () [0x00000] in <filename unknown>:0 
  at Microsoft.Runtime.CompilerServices.TaskAwaiter+<>c__DisplayClassa.<OnCompletedInternal>b__1 (System.Object state) [0x00000] in <filename unknown>:0 
  at MonoTouch.UIKit.UIKitSynchronizationContext+<Post>c__AnonStorey52.<>m__4E () [0x00000] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIKitSynchronizationContext.cs:24 
  at MonoTouch.Foundation.NSAsyncActionDispatcher.Apply () [0x00000] in /Developer/MonoTouch/Source/monotouch/src/shared/Foundation/NSAction.cs:87 
  at (wrapper managed-to-native) MonoTouch.UIKit.UIApplication:UIApplicationMain (int,string[],intptr,intptr)
  at
 MonoTouch.UIKit.UIApplication.Main (System.String[] args, System.String principalClassName, System.String delegateClassName) [0x0004c] in /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:38 
  at iPhone.Application.Main (System.String[] args) [0x00001] in c:\Sources\Local\PCL_XN\iPhone\Main.cs:17 
The program 'Mono' has exited with code 0 (0x0).
The program '[6760] iPhone.vshost.exe: Managed (v4.0.30319)' has exited with code -1 (0xffffffff).
4

1 に答える 1

3

返信が少し遅くなりましたが、まだ誰かがこの問題に遭遇している場合は、回避策の 1 つ--nolinkaway --linkskip=mscorlibとして、メイン アプリケーション プロジェクトの [プロジェクト オプション -> iOS ビルド -> 追加の mtouch 引数] の下に追加する方法があるようです。

mscorlibこれがないと、リンカーはMicrosoft.Bcl パッケージが互換性チェックに必要とするものを削除します。

ここに報告されたバグ: https://bugzilla.xamarin.com/show_bug.cgi?id=15290

于 2013-10-08T23:44:46.930 に答える