0

我有一个小门户I'm写作,这个门户网站应该发动按钮点击安装。我正在使用VS2010在WinXP SP3工作站上开发,在这台机器上,即使是编译和发布,一切都按预期工作。但是,当我在Windows 7中运行编译的应用程序时,它崩溃了......应用程序工作,它只是当我点击程序安装按钮时崩溃。在Windows 7上WPF应用程序崩溃

编程看起来是这样的:

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程序专门崩溃......

任何想法,这可能是为什么? I`ve试图寻找在这里的#1,和其他论坛,但都无济于事......

任何帮助或方向冈茨欢迎!

+0

您可以将try catch块添加到该代码并输出异常消息和堆栈跟踪。 –

+0

嘿,谢谢你的回复! 我加了try catch,结果失败了,因为找不到指定的文件。指定的文件位置始终存在于我的XP机器中。这意味着我的XP机器上“d:\\的Visual Studio 2010 \\ \\ SAFE_Portal1 \\ SAFE_Portal1额外的程序\\ AccessRT2003.exe”始终存在,所以,当我的应用程序转移到win7的,那台机器上AP显然是不当下。 问题是,从来就增加了.exe文件到我的解决方案,但我还没#牛逼想出如何在.EXE文件链接,以便它指定的解决方案的文件...任何aideas? – SlickD

+0

在我的图片,我也加入到我的解决方案,我可以按以下联系他们: “图片\ image1.jpg” 但因为程序文件路径,需要双斜杠\\,我不确定如何指定它... – SlickD

回答

0

试试这个:

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)) 
{ 
    ... 
} 
+0

是的,这就是我刚才意识到的问题,固定的路径导致它。在我的解决方案中,我添加了这些文件,我如何告诉c#我想要的文件位于解决方案文件夹中? 在我的解决方案文件夹,它了一个名为额外的程序文件夹中,当我编译和发布,该文件夹与它一起去... – SlickD

+0

您可以使用System.Reflection.Assembly.GetExecutingAssembly()的位置来获得应用程序的路径。然后使用System.IO.Path.Combine来建立你的文件名。我在公共汽车上写了这个内存,所以要警告。) – Amenti

相关问题