我正在构建Monotouch(试用版)4.0.3。项目。它汇编了警告:
警告:应用包中缺少库'loader.dll',无法提取内容
所有其他dll在构建期间都成功捆绑,而且这个dll之前正在运行。在使用警告进行编译之后,当它无法加载程序集时,它会在运行时(在模拟器上)在加载时崩溃并出现分段错误。
我搜索过此警告,但我找不到任何引用。 有谁知道为什么程序集没有被添加到应用程序包中?
答案 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开发人员会做什么,因为这种行为会使运行时访问卫星库变得不可能。