- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要从我的 UWP 应用程序调用批处理文件。方法似乎是 Process.Start(),但它说当我按照它输出的路径时,它甚至找不到文件,它确实存在。当使用 shellexecute = false 时,文件路径和工作目录都作为完整路径给出。
当我设置 useshellexecute = true 时它起作用。由于完整路径在这里有效,因此文件显然在那里。使用 shellexecute = true 时,工作目录仅指定应在何处搜索文件,命令提示符从 system32 目录开始,但我需要工作目录位于打开的批处理所在的位置。
因此 ShellExecute = false。
我试过:1. ShellExecute = true。它找到了文件,但工作目录设置不正确。2. 硬编码批处理的绝对路径。还是没找到。3. 设置 StartInfo.FileName 而不是通过参数提供。4.相对路径5. Process.Start(文件名)。没有 StartInfo 无法设置工作目录6. 看看类似的问题,但答案总是我已有的(当shellexecute = false时使用完整路径)
string executable = args[2];
string path = Assembly.GetExecutingAssembly().CodeBase;
string directory = Path.GetDirectoryName(path);
var startInfo = new ProcessStartInfo(directory + @"\Diagnose\_data\Updater\" + executable);
startInfo.UseShellExecute = false;
startInfo.WorkingDirectory = directory + @"\Diagnose\_data\Updater";
startInfo.RedirectStandardError = true;
startInfo.RedirectStandardInput = true;
startInfo.RedirectStandardOutput = true;
Process.Start(startInfo);
它应该找到文件,因为给出了完整的绝对路径并且文件确实存在,但它给出了一个找不到文件的错误。
最佳答案
使用Assembly.Location而不是 Application.CodeBase . Application.CodeBase
以 URL 而不是文件路径的形式返回程序集的源位置。程序集可以从 URL 或字节数组加载,CodeBase
反射(reflect)了这一点。它返回类似的东西:
file:///C:/TEMP/LINQPad6/_kighplqc/neuyub/LINQPadQuery.dll
Windows shell 可以处理文件 URL 并将它们转换为实际的文件路径。不过,操作系统本身需要文件路径。
您也应该使用 Path.Combine
而不是连接字符串,以避免出现额外或缺少斜线的问题。你应该使用类似的东西:
string path = Assembly.GetExecutingAssembly().Location;
string directory = Path.GetDirectoryName(path);
var execPath=Path.Combine(directory,"Diagnose\_data\Updater",executable);
var startInfo = new ProcessStartInfo(execPath);
关于c# - Process.start 在 useshellexecute = false 时找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56787421/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!