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)
\n\n\n我正在努力研究如何获取exe文件和文件文件夹的路径。
\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();\nRun Code Online (Sandbox Code Playgroud)\n\n\n
| 归档时间: |
|
| 查看次数: |
8024 次 |
| 最近记录: |