2016-07-05 6 views
2

実際にはChromeネイティブメッセージングを使用してOSXで実行可能なC#monoを起動しようとしています。Monoを使ったクロムネイティブメッセージ

これまでのところ、私はOSXで実行ファイルを起動することができていたことがありません(それはWindows上でうまく動作します)

ここでは、ネイティブメッセージングホストのマニフェストです:

{ 
    "allowed_origins" : 
    [ 
     "chrome-extension://njbimgehbcecolchhhfpamfobkedoein/" 
    ], 
    "description" : "test native messaging host", 
    "name" : "com.myapp.native.host", 
    "path" : "/Applications/myapp/launch.sh", 
    "type" : "stdio" 
} 

はここで打ち上げです。 SHファイル:

#!/bin/bash 
/usr/local/bin/mono --runtime=v4.0.30319 my_executable.exe "[email protected]" 

私は常に次のエラーを取得する:

"ネイティブホストが終了しました。"

1 /仕事におそらくこの方法で、私は何かが欠けている?(それは標準入力のエントリを読み込む)私はshのファイルを起動しようとしましたが、それがうまく動作するようですか 2/Monoを使用して実行可能ファイルを起動する別の方法はありますか? (私はマニフェストに実行可能なパスを直接入れてみましたが、動作しません。 3/Mono(Python/C++)以外のものを使用する必要がありますか、実行可能ファイルを書き直す必要があり、多くの費用がかかります。

答えて

1

1 /は仕事におそらくこの方法で、私は何か

を欠けているはい、それは動作するはずです。私は、Javaランタイムと非常によく似たセットアップを見てきましたし、私はなぜそれいかなる理由が表示されませんMONOランタイムでは動作しません。

2 /別の方法がありますか? Monoを使って実行可能ファイルを実行しますか?

私は間違いなくどこでも絶対パスを使用することをお勧めし

次のことができます。

/absolute_path_to/mono /absolute_path_to/my_executable.exe

3/Iは、モノ(のpython/C++)

号ネイティブ以外の何かを使用する必要がありますメッセージングは​​、それを作成するために使用されたプログラミング言語に関係なく、任意の実行可能ファイルで動作します。


ところで:モノはあなたの実行ファイルがあなたのコードによって処理されない例外をスローしたときに起動に失敗することができますが、あなたのlaunch.shスクリプトがエラーメッセージを「飲み込む」します。有用な情報を提供していません

#!/bin/bash 
/absolute_path_to/mono --runtime=v4.0.30319 /absolute_path_to/my_executable.exe "[email protected]" 2> /absolute_path_to/my_executable.log 

STDERR場合は、(私はそれがネイティブメッセージングのために必要とされている知っているが、あなたは右の問題をデバッグしているにもSTDOUTをリダイレクトしようとすることができます:あなたは、おそらくこのようなファイルをログに記録するSTDERRをリダイレクトする必要がありますか?)このように:

#!/bin/bash 
/absolute_path_to/mono --runtime=v4.0.30319 /absolute_path_to/my_executable.exe "[email protected]" > /absolute_path_to/my_executable.log 2>&1 

いずれにしても、まだログ機能を追加していない場合は、アプリケーションにログ機能を追加する必要があります。

+0

あなたの素早く徹底的な答えに感謝します。 Btw私は現在あなたのすばらしいDll PKCS11Interopを使用しています。 – Thordax

+0

@Thordax:それは素晴らしいです。私はあなたがそれを好きうれしい。 – jariq

関連する問題