试图从另一个Visual Studio C#程序内部启动Visual Studio C#程序

试图从另一个Visual Studio C#程序内部启动Visual Studio C#程序,c#,visual-studio-2008,visual-studio-2010,C#,Visual Studio 2008,Visual Studio 2010,我很难让一个用VS 2008 C#编写的Windows程序启动另一种类型的程序。我已经设置了一个主程序,让您能够启动其他VS 2008 C#程序。选择其中一个后,以下代码用于启动: System.Diagnostics.Process.Start(@“C:\Documents and Settings\rat\My Documents\Visual Studio 2008\Projects\PV_002\U 082708\PV_001\PV_001\bin\Debug\PV.exe”) 它可以工

我很难让一个用VS 2008 C#编写的Windows程序启动另一种类型的程序。我已经设置了一个主程序,让您能够启动其他VS 2008 C#程序。选择其中一个后,以下代码用于启动:

System.Diagnostics.Process.Start(@“C:\Documents and Settings\rat\My Documents\Visual Studio 2008\Projects\PV_002\U 082708\PV_001\PV_001\bin\Debug\PV.exe”)

它可以工作,但每个用户都有不同的路径。显示的路径是我的计算机路径。代码必须知道每个persons程序安装在哪里!在过去,我可以很容易地调用位于C:\program Files位置的程序,因为MS Package&Deployment程序将程序放在该位置。VS2008/2010并没有把他们放在那里

我肯定我对VisualStudio2008/2010不太了解,不知道是否有办法解决这个问题,因此非常感谢您的帮助

System.Diagnostics.Process.Start(System.Io.Path.Combine(System.Windows.Forms.Application.StartupPath, "PV.exe"));
假设程序位于已启动应用程序的路径中

或者


假设您想从它的位置打开项目。

创建安装包后,您可以将安装路径设置为用户无法更改的固定路径,然后从代码中使用该路径(虽然不太方便用户,但它可以工作)或者将用户选择的路径值插入注册表并从注册表中获取。

可能需要查看此线程。如何做,以及许多赞成和反对

如果你看到了他的问题的第一个答案,我想这对你来说是可行的


他只是说,你向你的项目添加一个资源文件,然后当用户运行你的程序时,它会提取你作为资源文件添加到最终用户机器上你知道的某个地方的exe文件。

Hmm,我不是100%,但我很确定你需要将exe嵌入dll中。所以当你部署它的时候,它总是在寻找exe。这是我从来没有想过的。我看到你的其他评论链接到了一个关于它的讨论。谢谢谢谢你的建议。我尝试了您的第一个,但出现错误“系统找不到指定的文件”。第二个要求您知道文件在每个人的计算机上的目录。第一个很好,因为它不需要路径。是的,我考虑过为所有用户提供硬路径,但是有30多个,每个提供启动的程序都有自己的特殊路径。这是一个真正的解决方案,但我试图找到一个更简单的方法。谢谢你的主意!谢谢你的链接!我想知道我是否在资源中嵌入了一些exe程序,如果任何嵌入的程序被更改,这个程序是否需要重新编译?或者资源只包含一个链接,而您所要做的就是重新编译程序(在资源之外)?我希望我讲得有道理。你好,鲍勃,当你构建项目时,编译器会将这些文件添加到你的程序集中。因此,每当您更新这些外部资源时,我认为您需要重新构建您的解决方案。
System.Diagnostics.Process.Start(System.Io.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments), @"Visual Studio 2008\Projects\PV_002_082708\PV_001\PV_001\bin\Debug\PV.exe"));