【问题标题】:WPF Application crashes on WIndows 7 when command executable.Start() is run运行命令 executable.Start() 时,WPF 应用程序在 WIndows 7 上崩溃
【发布时间】:2011-12-06 03:30:33
【问题描述】:

我正在编写一个小型门户,该门户应该在单击按钮时启动安装程序。我在 WinXP SP3 站上的 VS2010 上进行开发,在这台机器上,即使在编译和发布之后,一切都按预期工作。但是,当我在 Windows 7 中运行已编译的应用程序时,它崩溃了……应用程序正常工作,当我单击程序安装按钮时它就崩溃了。

程序如下:

    private void button_access_Click(object sender, RoutedEventArgs e)
    {


        Process executable = new Process();
        string executablePath = "D:\\Visual Studio 2010\\SAFE_Portal1\\SAFE_Portal1\\Extra Programs\\AccessRT2003.exe";
        executable.StartInfo.FileName = executablePath;
        executable.Start();


    }

它在 thr button_access_Click 过程中特别崩溃...

关于为什么会这样的任何想法?我试过在 Stackoverflow 和其他论坛中四处寻找,但无济于事......

欢迎任何帮助或指导!

【问题讨论】:

  • 您可以在该代码中添加一个 try catch 块并输出异常消息和堆栈跟踪。
  • 您好,谢谢您的回复!我添加了try catch,结果它失败了,因为它找不到指定的文件。指定的文件位置始终存在于我的 XP 机器中。这意味着在我的 XP 机器上 "D:\\Visual Studio 2010\\SAFE_Portal1\\SAFE_Portal1\\Extra Programs\\AccessRT2003.exe" 始终存在,所以当我将应用程序转移到 win7 时,在那台机器上显然不是展示。问题是,我已经将 .exe 文件添加到我的解决方案中,但我还没有弄清楚如何链接 .exe,以便它在解决方案中指定这些文件......有什么建议吗?
  • 在我的图像上,我也添加到我的解决方案中,我可以将它们链接如下:“Images\image1.jpg”但由于程序文件路径需要双斜杠 \\,我不确定如何指定它...

标签: windows visual-studio-2010 windows-7 windows-xp external-process


【解决方案1】:

试试这个:

try
{
     Process executable = new Process();
     string executablePath = "D:\\Visual Studio 2010\\SAFE_Portal1\\SAFE_Portal1\\Extra Programs\\AccessRT2003.exe";
     executable.StartInfo.FileName = executablePath;
     executable.Start();
 }
 catch (Exception msg)
 {
     MessageBox.Show(msg.Message);
 }

你收到什么信息?

您确定要在应用程序中使用固定路径吗?如果是这样,您至少应该事先检查您尝试启动的文件是否存在。否则会抛出异常,这可能是这里的问题。

if (File.Exists(executablePath))
{
    ...
}

【讨论】:

  • 是的,这就是我刚刚意识到的问题,是固定路径造成的。在我的解决方案中,我添加了这些文件,如何告诉 c# 我想要的文件在解决方案文件夹中?在我的解决方案文件夹中,它位于一个名为 Extra Programs 的文件夹中,当我编译和发布时,该文件夹与它一起...
  • 您可以使用 System.Reflection.Assembly.GetExecutingAssembly().Location 来获取应用程序的路径。然后使用 System.IO.Path.Combine 构建您的文件名。我在公共汽车上写这个内存不足,所以请注意。;)
猜你喜欢
  • 2011-06-06
  • 2017-06-21
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 2011-06-12
相关资源
最近更新 更多