如何将Farseer与MonoTouch/ExEn应用程序结合使用?

如何将Farseer与MonoTouch/ExEn应用程序结合使用?,mono,xamarin.ios,monodevelop,farseer,exen,Mono,Xamarin.ios,Monodevelop,Farseer,Exen,我正在尝试用XNA和Farseer Physics 3.3为iOS构建一个游戏,使用ExEn和MonoTouch。理论上这应该可以,但我在让Farseer在iPhone上工作时遇到了麻烦 我为MonoTouch/ExEn编译了Farseer,它在iPhone模拟器中运行得非常好。但一旦我切换到实际的iPhone,我的项目就不再编译了。问题似乎发生在MonoDevelop链接器上。编译器弹出消息“mtouch exited with code 1”,我得到以下链接器错误输出:。如果在项目选项中禁用

我正在尝试用XNA和Farseer Physics 3.3为iOS构建一个游戏,使用ExEn和MonoTouch。理论上这应该可以,但我在让Farseer在iPhone上工作时遇到了麻烦

我为MonoTouch/ExEn编译了Farseer,它在iPhone模拟器中运行得非常好。但一旦我切换到实际的iPhone,我的项目就不再编译了。问题似乎发生在MonoDevelop链接器上。编译器弹出消息“mtouch exited with code 1”,我得到以下链接器错误输出:。如果在项目选项中禁用链接,应用程序将编译并部署到iPhone,但随后崩溃

如果我注释掉所有实例化Farseer定义的对象的代码,我不会得到任何链接器错误,程序部署和运行都很好。因此,问题显然在于我为MonoTouch构建的Farseer


不幸的是,我不知道从这里走到哪里。如果出现这样的链接器错误,我应该从哪里开始查找?或者,更好的是:是否有人成功编译了Farseer 3.3并将其与MonoTouch和ExEn一起使用?

您正在尝试在MonoTouch中使用为.NET 4.0编译的程序集。这将不起作用(您得到的链接器异常是因为程序集引用了MonoTouch中不存在的方法)


解决方案是使用MonoTouch编译所有引用的程序集。环顾四周,看看是否有人已经为Farseer创建了MonoTouch项目,否则你必须自己创建一个。

有趣。谢谢你的回复!你能告诉我如何使用MonoTouch正确编译程序集的正确方向吗?事情是这样的:我确实用MonoTouch编译了它。我在MonoDevelop中创建了一个新的空Mono C#类库项目,将所有Farseer源文件复制到其中,添加(我认为是)MonoTouch适当的引用,并构建了它。这就是我在MonoTouch应用程序中包含的DLL,这就是它在MonoDevelop中与“iPhone模拟器”一起工作的原因。我遗漏了什么吗?@Michael:如果你所有的引用都是用MonoTouch编译的,你不应该得到链接器异常。在这种情况下,我建议用一个完整的测试用例在提交一个bug(您可以附加整个项目并将bug标记为私有,这样除了Xamarin员工之外没有人可以访问您的项目)。您完全正确!事实证明,我在MonoDevelop中创建的用于编译Farseer程序集的项目是一个“Mono C#”类库,而不是一个“MonoTouch for iPhone”类库。几句小小的话就有多大的不同啊!为“MonoTouch for iPhone”创建一个新的类库项目,完美地修复了所有问题。Farseer组件现在可以正确加载。非常感谢。