__MonoCS_ Mono、Roslyn、Dnvm中的常数等价物

本文关键字:常数 等价物 Roslyn MonoCS Mono Dnvm | 更新日期: 2023-09-27 18:01:12

我的C#项目中有导入,但在Mono中(即使在编译时!(也不能很好地工作。我想排除Mono中的一些代码(在编译时(。我以前也用过类似的东西:

#if !__MonoCS__
...
#endif

然而,这个常数在Mono 4.0.2,OSX中没有定义。可能只在DNVM或Roslyn上。

如果我在文件开头手动定义__MonoCS_常量。一切都很好。

该平台上是否有__MonoCS_等效产品?


如果是这样的话,我的项目是基于asp.net vnext的webapi。我用以下命令运行该项目:

/Users/buraktamturk/.dnx/runtimes/dnx-mono.1.0.0-beta4/bin/dnx . kestrel

对于许多具体信息,答案是"为什么我在编译时需要它?"。只有当以下代码被注释掉时,该项目才能工作。

if(false) { // yes, false!
  var certificate = new X509Certificate2(config.Get("google:pkeyloc"), config.Get("google:pkeypw"), X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable);
   credential = new ServiceAccountCredential(
              new ServiceAccountCredential.Initializer(config.Get("google:serviceacc"))
              {
                  Scopes = new[] { StorageService.Scope.DevstorageFullControl }
              }.FromCertificate(certificate)
    );
}

__MonoCS_ Mono、Roslyn、Dnvm中的常数等价物

将代码移到另一个函数中。

只要你不在没有DLL的平台上调用该函数,一切都会好起来的。