1

Visual Studio 2010 で Xamarin.Android をテストしています。

私の Xamarin.Android VS2010 ソリューションには 2 つのプロジェクトが含まれています: Android プロジェクトと、作成中のデモ アプリのすべてのビジネス ロジックを実行するプロジェクト (この投稿では MyProject と呼びます) - Android プロジェクトは MyProject プロジェクトを参照します。 /組み立て)。

アプリケーションを実行すると、MyProject で例外エラーが発生するので、MyProject にステップ インして問題をデバッグしたいと思います。

ただし、デバッグすると、VS2010 が MyProject にステップ インしません。

例えば:

私の Android プロジェクトでは、例外の場所にブレークポイントがあります。

MyProject mp= new MyProject();
mp.DoSomething(); // Exception is thrown here, breakpoint is set here, but VS doesn't step into the MyProject code. The debugger gets stuck here and displays exception info in the Output window.

VS2010 Mono Android プロジェクトで参照されているプロジェクト/アセンブリをデバッグするにはどうすればよいですか?

4

1 に答える 1

3

参照されたアセンブリをデバッグできなかった理由は、参照されたアセンブリが .NET アセンブリ (.NET アセンブリを参照する C# で記述されたアセンブリ) であったためです。

Xamarin.Android 開発は初めてなので、Android プロジェクトを作成し、既存の .NET プロジェクトを Android プロジェクトに参照するだけでよいと考えていましたが、そうではありませんでした。

Android プロジェクトで .NET アセンブリを参照する (それによって .NET アセンブリをデバッグする) には、次のことを行う必要がありました。

  1. Visual Studio (または Xamarin Studio) で、新しい Android クラス ライブラリ プロジェクトを作成します。
  2. .NET プロジェクトのすべての .cs ファイルを、新しく作成した Android クラス ライブラリにコピーします。
  3. Android クラス ライブラリをビルド/コンパイルします。この時点で、デフォルトではプロジェクトに追加されなかった Mono アセンブリへの参照を手動で追加する必要がある場合があります。例: MonoSystem.Dataアセンブリを手動で追加する必要がありました。
  4. 元の Android プロジェクトで、Android クラス ライブラリを参照します。
  5. 終わり

理解すべき重要な点 (私は知りませんでした) は、Xamarin が .NET アセンブリに対応する Mono アセンブリを作成したことです。Mono アセンブリは (自分のマシン上に)C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v1.0\存在しますが、.NET アセンブリは (自分のマシン上に) '(つまり、C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0ディレクトリ内にあるアセンブリ)' に存在します。

その点について - Android プロジェクトが .NET アセンブリを使用するアセンブリ/プロジェクトを参照している場合、次のような警告が表示されます。

「プロジェクト 'MyProject' を参照できません。参照されているプロジェクトは、別のフレームワーク ファミリ (.NETFramework) を対象としています」

于 2013-06-28T13:20:37.563 に答える