如何(实际上)在MonoTouch中重用现有的.NET库

时间:2011-07-21 15:56:41

标签: visual-studio xamarin.ios code-reuse csproj

假设我已经在Visual Studio 2010中构建了一个现有的.NET程序集,该程序集在其他一些Winforms产品中使用。它没有第三方依赖。

我想直接在MonoTouch解决方案中重用该库。

就目前而言,为了能够在我的MonoTouch UI项目中添加对我的库的引用,我必须创建一个新的csproj文件并创建指向其中所有源文件的链接。

这可行,但是维护负担。必须有更好的方法吗?

提前致谢。

2 个答案:

答案 0 :(得分:6)

截至今天,您需要重建程序集。这是因为它们将链接到monotouch BCL(例如,一个不同的mscorlib.dll),它是Silverlight附带的基类库(BCL)的超集。

希望MonoTouch的更新版本(以及Mono,Mono for Android ...)将支持新的“可移植库”,这样可以更轻松地跨框架共享已编译的二进制文件。

http://blogs.msdn.com/b/bclteam/archive/2011/01/19/announcing-portable-library-tools-ctp-justin-van-patten.aspx

答案 1 :(得分:2)

信不信由你,你实际上可以引用VS.NET中构建的.dll lib,只要你的共享程序集没有引用任何其它会使它与monotouch不兼容的程序集。我目前正在我们的项目上这样做。引用的.dll只依赖于SystemSystem.Core,它基本上只是一组POCO。我确信知识渊博的人可以准确地告诉你如何使.dll不兼容。即使在SystemSystem.Core内使用不兼容的API调用,也可能会因为poupou的回答而破坏它,但如果你保持共享的.dll简单,它应该可以正常工作。