是否需要使用mono编译单声道项目中使用的所有依赖项

W3M*_*Max 3 c# mono dependencies

假设我在Windows(Visual Studio 2008)下启动了一个C#项目,我想切换到Mono.我是否必须重新编译项目使用的所有依赖项,例如NHibernate和出现的每个外部依赖项?

注1:我问这个问题的原因是我在Ubuntu 9.10上使用MonoDevelop构建了一个项目,一切都像魅力一样但是当我尝试调试运行一些用NUnit编写的测试时,一切都冻结了.我必须取消正在运行的测试以使MonoDevelop备份,并且没有明确的堆栈跟踪或提示我可以用来查找问题.所以我可能需要在Mono/Linux下编译NHibernate(以及其他依赖项).

ric*_*ent 6

不,您不需要重新编译在使用Mono编译器编译的代码中引用的DLL.

但是,如果您的用户在Mono而不是Microsoft.NET框架下执行应用程序并且DLL包含Mono框架不支持的调用,则它们将遇到问题.

有一个Mono迁移工具可以分析您的DLL,看看它们是否包含Mono用户不支持的任何调用.

同样,使用Mono编译器编译的DLL可以由使用Microsoft编译器编译的代码引用.