【问题标题】:Cannot run exe file from wpf application无法从 wpf 应用程序运行 exe 文件
【发布时间】:2013-08-21 21:00:14
【问题描述】:

..我不知道为什么。我可以从调试文件夹(在 wpf 中创建的应用程序)运行 exe 输出文件,但我无法运行我需要将产品发送到以太网连接重量的文件。 此 exe 文件读取 .plu 文件(逐个产品)并将它们添加到权重内存中。

我正在使用的代码:

using (StreamWriter sw = new StreamWriter(appPath + "\\Wagi\\" + cbi.Content.ToString() + "\\Kasa1.plu"))
            {
                sw.WriteLine("[MT_STAND_FIRE,PLU,WRITE,0,0,0,0]");
                foreach (DataRowView item in prodDG.Items)
                {
                   //write lines about products
                }
                sw.WriteLine("[MT_STAND_FIRE,Extra Text,WRITE,0,0,0,0]");
                sw.WriteLine("[MT_STAND_FIRE,Preset Key,Write,0,0,0,0]");

            }
            string ExecutableFilePath = appPath + @"\Wagi\" + cbi.Content.ToString() + @"\bComScale.exe";

            if (File.Exists(ExecutableFilePath))
            {
                Process.Start(ExecutableFilePath);
            }

有什么想法吗?

【问题讨论】:

  • 你有什么错误吗?您是否尝试在命令提示符下运行该路径?当您从元素连接路径时,请使用 Path.Combine
  • 我尝试在字符串 ExecutableFilePath 中放置断点,读取值并将文本插入资源管理器的地址栏中 - 工作正常。
  • 那么当您在Process.Start(...) 上设置断点时,它会执行命令并继续前进、挂起、引发错误吗?
  • 点仍然存在。可能是同一个问题。应用程序在哪里搜索输入/配置文件或写入错误文件?当前文件夹或应用程序文件夹?当您从资源管理器中双击 exe 时,它​​们是相同的,但是当您从另一个应用程序运行它时,它们可能会有所不同。在某个随机文件夹中打开命令提示符,过去的路径并尝试执行并查看会发生什么
  • 应该很容易修复。尝试Process.Start(ProcessStartInfo),除了要执行的文件,提供ProcessStartInfo.WorkingDirectory

标签: wpf process exe


【解决方案1】:

应用程序执行良好。问题出在执行的应用程序中,它似乎正在当前文件夹中寻找配置文件,而不是应用程序文件夹。由于这两个可能不同,您需要使用不同的 Process.Start(ProcessStartInfo) 重载,它允许您为进程指定 ProcessStartInfo.WorkingDirectory

我还建议在连接元素列表中的路径时使用 Path.Combine

string ExecutableFilePath = System.IO.Path.Combine(appPath, "Wagi", cbi.Content.ToString(), "bComScale.exe");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 2020-08-22
    • 2012-09-21
    • 1970-01-01
    相关资源
    最近更新 更多