私はMVC .NETアプリケーションを持っていて、サーバー上でいくつかの.exesを実行したいと思います。 exesはjarsigner.exeとzipalign.exeで、アンドロイドAPKの変更と再署名に使用されます。私はコントローラからそれらを実行したい。Azure Appサービスで.EXEを実行する方法
これは、アプリケーションを起動するプロセスを使用してローカルで動作しますが、私は不正行為をし、.exeへのハードコードされたパスと、exeファイルで使用されるものを含むフォルダを使用しました。
Visual Studioで私のプロジェクトのトップレベルに.exesを追加し、.exesで処理するファイルを含むフォルダを追加しました。
私はexesとファイルのフォルダへのパスをどのように取得するのが苦労しています。私はそれを持っていれば、私はプロセスを呼び出すことができます(私は許可の問題に遭うかもしれないと思うが、一度に1ステップ...)。
var processInfo = new ProcessStartInfo(@"C:\jarsigner.exe", @"..arguments"){
CreateNoWindow = true, UseShellExecute = false
};
これは、ローカルマシン上、ほとんどのAzureサーバー上で素晴らしい作品。サーバー上の問題は、EnvironmentVariable "Java_HOME"がヌルである、つまりJREがサーバーにインストールされていないことです。それ、どうやったら出来るの?私はちょうどjava.dllをコピーし、Java環境変数を手動で設定しようとしましたが、うまくいきませんでした。 – gregm
あなたのKUDUのcmdで "echo%JAVA_Home%"がヌルですか? –
Environment.GetEnvironmentVariable( "Java_HOME"、EnvironmentVariableTarget.Machine)をチェックするとnullです – gregm