c# - mono 项目中使用的所有依赖项是否都需要用 mono 编译

标签 c# mono dependencies

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

注 1:我问这个问题的原因是我在 Ubuntu 9.10 上用 MonoDevelop 构建了一个项目,一切都很顺利,但是当我尝试调试运行一些用 NUnit 编写的测试时,一切都卡住了。我必须取消正在运行的测试才能让 MonoDevelop 备份,并且没有清晰的堆栈跟踪或提示可用于查找问题。所以我认为也许我需要在 Mono/Linux 下编译 NHibernate(和其他依赖项)。

最佳答案

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

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

有一个Mono migration tool可以分析您的 DLL 以查看它们是否包含 Mono 用户不支持的任何调用。

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

关于c# - mono 项目中使用的所有依赖项是否都需要用 mono 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1719076/

相关文章:

c# - StackExchange.Redis - 如何获取 key 的类型?

macos - 在 OS X 上安装 libval​​a >= 0.12

python - 在 `pip install` ing 时可选择排除一些依赖项

c# - 不使用数据库数据可以使用DataGridView吗?

c# - 如何调试在 rebus 处理程序中抛出的异常?

c# - 性能:在 VS 中编译,在 Windows 和 Linux 上以 Mono 运行

c# - 使用单声道等待 UIO 中断

c++ - 项目之间应该如何依赖?

javascript - 如果对象的成员之间存在依赖关系,是否可以使用文字符号初始化对象?

c# - 在 .net windows 应用程序中使用 log4net