在MonoTouch项目中加载程序集时出现问题

时间:2011-06-09 19:52:49

标签: xamarin.ios monodevelop

我正在构建Monotouch(试用版)4.0.3。项目。它汇编了警告:

  

警告:应用包中缺少库'loader.dll',无法提取内容

所有其他dll在构建期间都成功捆​​绑,而且这个dll之前正在运行。在使用警告进行编译之后,当它无法加载程序集时,它会在运行时(在模拟器上)在加载时崩溃并出现分段错误。

我搜索过此警告,但我找不到任何引用。 有谁知道为什么程序集没有被添加到应用程序包中?

2 个答案:

答案 0 :(得分:1)

听起来链接器正在删除loader.dll,因为它认为没有使用它。尝试将项目的链接器设置设置为“仅链接sdk”。

答案 1 :(得分:1)

mhutch是正确的,链接器机会性地修剪库。但是,默认的链接器设置不是为了链接任何东西,所以他的解决方案只适用于您链接所有程序集的罕见情况(您不想使用MonoTouch,因为永远不会嵌入对SDK的引用)

解决方法是从调用程序集内部新建一个要使用的库中的某个实例。

using MonoTouch.Foundation;
using MonoTouch.UIKit;
using MyLibrary;

namespace MyApp
{
    public class Application
    {
        static void Main(string [] args)
        {
            new MyLibrary.DontPruneMeBro();

            UIApplication.Main(args, null, "AppDelegate");
        }
    }
}

顺便说一句,我不知道iOS开发人员会做什么,因为这种行为会使运行时访问卫星库变得不可能。