4

MonoTouchソリューションでServiceStack.Text.MonoTouch.dllの使用を開始しました。すべてがコンパイルされ、シミュレータで実行されますが、電話でデバッグビルドを実行しようとすると、コンパイルプロセスが次のエラーで 終了します。エラーMT3001:アセンブリをAOTできませんでした'.../ServiceStack.Text.MonoTouch。 dll '

これは、ServiceStack.Text dllが大きすぎるか、これらの行に沿ったものが原因であると読みました。だから私はリリースモードで試しましたが、LLVMがオンになっていて、リンカーが「LinkSDKアセンブリのみ」になっているために動作します。

デバイスでデバッグできなくなったため、これは問題があります。デバッグモードでは、リンカは無効になり、LLVMはオフになります。これを回避する方法はありますか?

MT6.0.8および最新バージョンのServiceStackdllはGithubから離れています。

4

1 に答える 1

1

デバッグ モードでは、リンカは無効になっています。

いいえ (少なくともデフォルトではありません)。

デフォルトでは、マネージド リンカーはすべてのデバイス ビルド (デバッグまたはリリース) に対して有効になっています (Link SDK)。ServiceStack.Text.dllただし、そのアセンブリはSDKアセンブリではないため、デフォルト (Link SDK) では未使用のコードを削除できません。

確実に処理されるようにするには、オプションを [すべてのアセンブリをリンクする] に切り替える必要があります。

[Preserve]リンカーセーフでない場合 (リフレクションの使用など)、独自のコードに属性 (または--linkskip=ASSEMBLY)を追加する必要がある場合があることに注意してください。例については、このスレッドを参照してください。

于 2013-01-16T22:24:30.003 に答える