如何在 Azure 应用服务中运行 .EXE

gre*_*egm 7 c# exe azure azure-web-app-service

我有一个 MVC .NET 应用程序,我想在服务器上运行一些 .exe。exe 是 jarsigner.exe 和 zipalign.exe,用于修改和重新签名 Android APK。我想从控制器运行它们。

它在本地工作,使用进程来启动应用程序,但我作弊并使用了 .exe 和包含 exe 使用的内容的文件夹的硬编码路径。

我已将 .exe 添加到 Visual Studio 中项目的顶层,并添加了一个包含 .exe 要处理的文件的文件夹。

我正在努力研究如何获取exe文件和文件文件夹的路径。一旦我有了它,我就可以调用该流程(我怀疑我可能会遇到权限问题,但一次一步......)。

var processInfo = new ProcessStartInfo(@"C:\jarsigner.exe", @"..arguments"){
 CreateNoWindow = true, UseShellExecute = false
};
Run Code Online (Sandbox Code Playgroud)

Ter*_*Fei 3

\n

我正在努力研究如何获取exe文件和文件文件夹的路径。

\n
\n\n

如果您的文件位于项目的顶层下。我们可以使用 Server.MapPath(@"~\\Jar\\TextFile1.txt") 找到路径。\n对于 jarsigner.exe。它位于 java JDK 的 bin 文件夹中的 \xe2\x80\x99s 中。这样我们就可以使用环境变量了。

\n\n

以下是获取 jarsigner.exe 路径和运行结果的示例代码。

\n\n
//string path = Server.MapPath(@"~\\Jar\\TextFile1.txt");    //get file path on the top-level of project(eg. ~\\folder\\xxx)\n        string JavaPath = Environment.GetEnvironmentVariable("JAVA_HOME", EnvironmentVariableTarget.Machine); \n        if(string.IsNullOrEmpty(JavaPath)){\n         JavaPath = Environment.GetEnvironmentVariable("JAVA_HOME", EnvironmentVariableTarget.User);\n        }\n        string path = JavaPath + @"\\bin\\jarsigner.exe";\n\n        var processInfo = new ProcessStartInfo()\n        {\n            FileName = path,\n            CreateNoWindow = true,\n            UseShellExecute = false,\n            WindowStyle = ProcessWindowStyle.Hidden\n        };\n\n        Process proc = Process.Start(processInfo);\n        proc.WaitForExit();\n        if (proc.ExitCode == 0)\n            ViewBag.Message = path + " exec success.";\n        else\n            ViewBag.Message = path + " exec fail.";\n\n        return View();\n
Run Code Online (Sandbox Code Playgroud)\n\n

在此输入图像描述\n在此输入图像描述

\n