我需要在PC上为Mac和.NET双重编译Mono类库.我想做一些小改动,但我希望使用编译器指令拆分代码.有什么建议?
Ste*_*art 44
虽然运行时检查可能更可取,但使用Mono编译器时,预定义__MonoCS__常量很有用,例如:
#if __MonoCS__
// Code for Mono C# compiler.
#else
// Code for Microsoft C# compiler.
#endif
Run Code Online (Sandbox Code Playgroud)
sko*_*ima 19
首选方法是使用运行时检测,因为这允许在任一平台上使用相同的程序集:
using System;
class Program {
static void Main ()
{
Type t = Type.GetType ("Mono.Runtime");
if (t != null)
Console.WriteLine ("You are running with the Mono VM");
else
Console.WriteLine ("You are running something else");
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 14
那么你当然可以使用
#if MONO
Run Code Online (Sandbox Code Playgroud)
然后用.编译
gmcs -define:MONO ...
Run Code Online (Sandbox Code Playgroud)
(当然,或者把它放在你的Mono构建配置中.这实际上取决于你如何构建你的库.)
...除此之外你还在寻找什么?
| 归档时间: |
|
| 查看次数: |
5067 次 |
| 最近记录: |