这要看你的程序是做什么的,以及它是如何编写的。如果你使用了纯C#和核心.NET框架功能,并且这些功能在Mono上得到支持,那么它们将“只需工作”,无需更改。但是,如果你使用不受支持的功能(例如:任何围绕本机互操作或WPF等构建的第三方库),它们将无法正常工作。定期在开发过程中对你的程序集运行Mono Migration Analyzer是一个非常好的主意。这将告诉你任何不兼容性。
简短回答:这取决于具体情况。 更详细的回答是:Mono的C#编译器生成的IL与.NET生成的IL相同。 问题在于额外的内容;即使用.NET中没有可用的Mono库的内容(例如WPF)。 另一个不兼容的领域是使用Win32特定的API。 因此,“有点”的答案是最好的。