1

私の C# プロジェクトには、Mono では (コンパイル時でも!) うまく機能しないインポートがあります。Mono で (コンパイル時に) 一部のコードを除外したい。以前に似たようなものを使用しました:

#if !__MonoCS__
...
#endif

ただし、この定数は OSX の Mono 4.0.2 では定義されていません。おそらく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)
    );
}
4

1 に答える 1

1

そのコードを別の関数に移動します。

その DLL を持たないプラットフォームでその関数を呼び出さない限り、すべて問題ありません。

于 2015-07-05T23:12:08.727 に答える