7

mono-service2で実行していることをどのように検出できますか?(C#/。NET 3.5では、ubuntu11でmono2.6.7を実行しています)

Type.GetType("Mono.Runtime")私はモノラルで実行していると言っているので、その部分は大丈夫です。しかしEnvironment.UserInteractive、monoの下では常に誤りであるように思われるので、コンソール/ターミナルなしで、実際にmono-service2で実行されているかどうかを判断するのに苦労しています。

4

2 に答える 2

5

Environment.UserInteractiveは適切な解決策ですが、残念ながら、現在、Monoには実装されていません。私はいつかそれを見て、この答えをアップグレードするかもしれません;)

ただし、検出するためだけに、おそらくこれを回避するハッキーなソリューションを使用できます。パラメータで指定さmono-serviceれたm名前は、そのサービスのアプリケーションドメインのわかりやすい名前になります(少なくとも現在のソースコード によるとmono-service)。したがって、このパラメーターを使用して実行すると、次のことをテストできるはずです。

AppDomain.CurrentDomain.FriendlyName == "NameGivenToMParameter"

それがtrueの場合、アプリケーションは明らかにモノサービスで実行されています(指定されたパラメーターを使用)。アプリケーションドメイン名の値をファイルに出力して、それが実際に機能するかどうかを確認します(私にとっては機能します);)それが本当に問題を解決するかどうかはわかりません。

于 2012-01-30T17:24:26.687 に答える
0
if (Environment.OSVersion.Platform.Equals(PlatformID.Unix)) 
{
}
于 2017-02-06T09:38:25.803 に答える