C# Android预处理器宏的Mono不工作
关于这个问题: 我正在尝试做一些跨平台的工作,需要让C# Android预处理器宏的Mono不工作,c#,android,mono,xamarin.android,c-preprocessor,C#,Android,Mono,Xamarin.android,C Preprocessor,关于这个问题: 我正在尝试做一些跨平台的工作,需要让\uuuuuu ANDROID\uuuuu宏正常工作。然而,在VisualStudio中,它并没有接受它。我做错什么了吗?该项目是一个Mono for Android项目,我刚刚更新到最新版本 示例代码(它不断进入#else): 刚刚经过测试,它在VS2010中的一个库和一个可执行项目中都对我有效——在Mono for Android 4.2.2中工作 然而,语法突出显示是“有点扭曲”——特别是它只发现\uuuuAndroid\uuuuuu代码
\uuuuuu ANDROID\uuuuu
宏正常工作。然而,在VisualStudio中,它并没有接受它。我做错什么了吗?该项目是一个Mono for Android项目,我刚刚更新到最新版本
示例代码(它不断进入#else):
刚刚经过测试,它在VS2010中的一个库和一个可执行项目中都对我有效——在Mono for Android 4.2.2中工作
然而,语法突出显示是“有点扭曲”——特别是它只发现
\uuuuAndroid\uuuuuu
代码在我对受影响的项目进行构建后是活动的。如果你将\uuuuAndroid\uuuuuuu
定义为自定义符号,它会通过吗?重建后似乎会“醒来”。奇怪的是,Resharper在呻吟,intellisense也在发疯。这里的区别在于Android符号被定义为构建过程的一部分,而不是像WINDOWS\u PHONE那样被定义为项目构建配置的一部分。VS/Resharper在构建之前可能无法了解它。
#if WINDOWS_PHONE
if (IsolatedStorageSettings.ApplicationSettings.Contains(CellNumberKey))
{
IsolatedStorageSettings.ApplicationSettings[CellNumberKey] = value;
}
else
{
IsolatedStorageSettings.ApplicationSettings.Add(CellNumberKey, value);
}
IsolatedStorageSettings.ApplicationSettings.Save();
#elif __ANDROID__
#else
NSUserDefaults.StandardUserDefaults.SetString (value, CellNumberKey);
NSUserDefaults.StandardUserDefaults.Synchronize ();
#endif