如何在Xamarin.Android项目中调试引用的程序集

时间:2013-06-26 18:36:07

标签: visual-studio-2010 xamarin.android visual-studio-debugging

我正在通过Visual Studio 2010测试Xamarin.Android。

我的Xamarin.Android VS2010解决方案包含两个项目:Android项目和一个项目(我将这个帖子称为MyProject),它完成了我正在制作的演示应用程序的所有业务逻辑 - Android项目引用MyProject项目/程序集。

当我运行appliation时,我在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项目中调试引用的项目/程序集需要做什么?

1 个答案:

答案 0 :(得分:3)

我无法调试引用程序集的原因是由于我引用的程序集是一个.NET程序集 - 一个用C#编写的程序集引用.NET程序集。

作为Xamarin.Android开发的新手,我假设我可以创建一个Android项目,然后简单地将现有的.NET项目引用到Android项目 - 事实并非如此。

为了在Android项目中引用.NET程序集(从而调试.NET程序集),我不得不:

  1. 在Visual Studio(或Xamarin Studio)中,创建一个新的Android类库项目
  2. 将所有.cs文件从.NET项目复制到新创建的Android类库
  3. 构建/编译Android类库。此时,您可能需要手动添加对默认情况下未添加到项目的Mono程序集的引用。例如:我必须手动添加Mono System.Data程序集。
  4. 在原始Android项目中,引用Android类库
  5. 完成
  6. 要理解的重要事项(我没有)是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)“