运行 程序文件夹中的 c# exe 文件
Run exe file in c# within the program folder
我需要从我的程序目录启动一个 EXE 文件,但不提供完整路径。
private void programul1ToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(@"C:\Users\radum\Desktop\mapa 3 prog\Prog3\Program 1.exe");
}
我该怎么做才能仅从...\Prog3\Program 1.exe 提供路径?
只需使用 relative path:
System.Diagnostics.Process.Start(@"Program 1.exe");
如果 Program 1.exe
与程序 运行 在同一目录中,代码 而 current working directory 不在同一目录中,则上面的代码将起作用例如使用快捷方式修改。
如果不是,那么您将不得不找出程序的相对路径(应该在bin/debug/
中的路径)
Common.AssemblyDirectory returns 包含 运行 程序集的文件夹。
所以使用:
Path.Combine(Common.AssemblyDirectory, @"Prog3\Program 1.exe");
编辑:您在我回答后编辑了问题。正如poke所说,你把文件放在了错误的文件夹中。
通常解决方案目录比默认输出目录高 3 级,因此您应该使用
System.Diagnostics.Process.Start(@"..\..\..\Program 1.exe");
但你不应该这样做。您必须将 Program 1.exe
复制到您的输出目录并使用
System.Diagnostics.Process.Start(@"Program 1.exe");
相反。您可以使用 post build commands 来执行此操作。
将其用作 post 构建命令
copy "$(SolutionDir)Program 1.exe" "$(OutDir)Program 1.exe"
我需要从我的程序目录启动一个 EXE 文件,但不提供完整路径。
private void programul1ToolStripMenuItem_Click(object sender, EventArgs e)
{
System.Diagnostics.Process.Start(@"C:\Users\radum\Desktop\mapa 3 prog\Prog3\Program 1.exe");
}
我该怎么做才能仅从...\Prog3\Program 1.exe 提供路径?
只需使用 relative path:
System.Diagnostics.Process.Start(@"Program 1.exe");
如果 Program 1.exe
与程序 运行 在同一目录中,代码 而 current working directory 不在同一目录中,则上面的代码将起作用例如使用快捷方式修改。
如果不是,那么您将不得不找出程序的相对路径(应该在bin/debug/
中的路径)
Common.AssemblyDirectory returns 包含 运行 程序集的文件夹。
所以使用: Path.Combine(Common.AssemblyDirectory, @"Prog3\Program 1.exe");
编辑:您在我回答后编辑了问题。正如poke所说,你把文件放在了错误的文件夹中。
通常解决方案目录比默认输出目录高 3 级,因此您应该使用
System.Diagnostics.Process.Start(@"..\..\..\Program 1.exe");
但你不应该这样做。您必须将 Program 1.exe
复制到您的输出目录并使用
System.Diagnostics.Process.Start(@"Program 1.exe");
相反。您可以使用 post build commands 来执行此操作。 将其用作 post 构建命令
copy "$(SolutionDir)Program 1.exe" "$(OutDir)Program 1.exe"