当前位置: 代码迷 >> C# >> 急 C# 启动外部EXE,指定工作途径,调试可以用.打包软件后,EXE无法启动
  详细解决方案

急 C# 启动外部EXE,指定工作途径,调试可以用.打包软件后,EXE无法启动

热度:98   发布时间:2016-05-05 04:00:14.0
急急急 C# 启动外部EXE,指定工作路径,调试可以用.打包软件后,EXE无法启动
如题:
 C# 启动外部EXE,指定工作路径,调试可以用.打包软件后,EXE无法启动.报告说是找不到文件.
               string exepath = @"..\Approve\test.exe";
               System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(); //声明一个进程启动信息对象
               psi.FileName = exepath; //可执行文件
               psi.WorkingDirectory = System.IO.Path.GetDirectoryName(exepath); //指定可执行文件所在目录为进程的工作目录
                System.Diagnostics.Process.Start(psi);


请牛人帮忙...........


------解决思路----------------------
你的那代码是在安装项目(安装类)里吗?
打包后你把System.IO.Path.GetDirectoryName输出看看
你用的相对路径来定位,可安装包却是通过msiexec.exe来执行的(以它的目录为基准),最后根据它的目录为相对路径,那就不是你想要的了
要得到正确的安装路径,应该在安装类(建议你使用InstallCommited事件)里使用this.Context.Parameters["TargetDir"]来获取
  相关解决方案