2017-07-02 7 views
3

別の.NetCoreプログラムを実行しようとしています。出力として引数を指定して.NetCoreからbashコマンドを実行します。

 ProcessStartInfo psi = new ProcessStartInfo(); 
     psi.FileName = "sh"; 
     psi.Arguments = "-c dotnet /home/myuser/PublishOutput/myprogram.dll"; 
     psi.UseShellExecute = false; 
     psi.RedirectStandardOutput = true; 
     psi.RedirectStandardError = true; 

     Process proc = new Process 
     { 
      StartInfo = psi 
     }; 


     proc.Start(); 

     string error = proc.StandardError.ReadToEnd(); 

     if (!string.IsNullOrEmpty(error)) 
      return "error: " + error; 

     string output = proc.StandardOutput.ReadToEnd(); 

     proc.WaitForExit(); 

     return output; 

私が取得:

のMicrosoft .NETのコア共有Frameworkのホスト

バージョン:1.1.0ビルド: 928f77c4bc3f49d892459992fb6e1d5542cb5e86

使用方法:DOTNET [共通オプション] [[options] path-to-application]

共通オプション--hel p .NETコアを表示 共有フレームワークのホストヘルプ。 --version表示 .NETコア共有フレームワークのホストバージョン。

オプション:--fx-versionインストール済みのバージョン アプリケーションの実行に使用する共有フレームワーク。
--additionalprobingpathプローブするためのプロービングポリシーとアセンブリを含むパス。

アプリケーションへのパス:.NETコア管理アプリケーションへのパス 実行するdllまたはexeファイル。

共有フレームワークホストをデバッグする場合は、ご使​​用の環境で 'COREHOST_TRACE' を '1'に設定してください。だから私はexacly runコマンドなしDLLのパス引数とDOTNETのように思えるhttp://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409

は、.NETのコア用のアプリケーションを開発する上で開始するには、から SDKをインストールします。

答えて

3

あなたはそれが1つの引数になるように-cに引数をエスケープする必要があります。それでも同じ問題

psi.Arguments = "-c \"dotnet /home/myuser/PublishOutput/myprogram.dll\""; 
+0

。私は引用符を追加し、私は同じ答えを得た。 – holocen

+0

まったく同じエラーメッセージですか?私はそのサンプルコードを試して、それは働いた。 dllパスが間違っている場合、 'No executable found matching command'のようなメッセージが表示されます。 –

+0

はい。まったく同じ。 – holocen

関連する問題