有没有办法启动添加到解决方案中的 .exe 文件
Is there a way to launch .exe files added to the solution
我有一个控制台应用程序需要能够启动作为 WPF 应用程序的可执行文件。这两个应用程序通过文件链接但是是独立的应用程序。我只需要能够从另一个执行一个。我的问题是我需要 EXE 的路径是一致的或动态的,这样当其他人使用它时文件仍然可以找到所以我尝试嵌入 exe。
我试过(项目 -> 添加 -> 现有项目 -> 添加 exe)然后将其配置为嵌入式资源。但是当我执行代码时 Process.Start("WebViewSolution.exe");它说找不到文件,即使它显示在解决方案中。
if (innerResponse.ToUpper() == "OPEN EXTERNAL PROGRAM")
{
Process.Start("WebViewSolution.exe");
}
因为我将文件添加为嵌入式资源,所以我认为它可以仅使用文件名启动。如果我将程序保存到我的桌面,我可以使用桌面路径启动它,没问题。但是桌面是我的电脑特有的。
- 将
WebViewSolution.exe
的生成操作设置为 'None' 并将输出目录复制到 'Copy if newer'
- 确认您当前的目录指向正确的位置。
Console.WriteLine(Directory.GetCurrentDirectory());
因为当前目录可能会在运行时发生变化,所以我倾向于避免使用相对路径,而是使用 Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "WebViewSolution.exe")
- 当您从 windows 资源管理器手动启动它时,确认
WebViewSolution.exe
成功启动。
var ps = Process.Start("WebViewSolution.exe");
Console.WriteLine(ps.HasExited);
我有一个控制台应用程序需要能够启动作为 WPF 应用程序的可执行文件。这两个应用程序通过文件链接但是是独立的应用程序。我只需要能够从另一个执行一个。我的问题是我需要 EXE 的路径是一致的或动态的,这样当其他人使用它时文件仍然可以找到所以我尝试嵌入 exe。
我试过(项目 -> 添加 -> 现有项目 -> 添加 exe)然后将其配置为嵌入式资源。但是当我执行代码时 Process.Start("WebViewSolution.exe");它说找不到文件,即使它显示在解决方案中。
if (innerResponse.ToUpper() == "OPEN EXTERNAL PROGRAM")
{
Process.Start("WebViewSolution.exe");
}
因为我将文件添加为嵌入式资源,所以我认为它可以仅使用文件名启动。如果我将程序保存到我的桌面,我可以使用桌面路径启动它,没问题。但是桌面是我的电脑特有的。
- 将
WebViewSolution.exe
的生成操作设置为 'None' 并将输出目录复制到 'Copy if newer' - 确认您当前的目录指向正确的位置。
Console.WriteLine(Directory.GetCurrentDirectory());
因为当前目录可能会在运行时发生变化,所以我倾向于避免使用相对路径,而是使用Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "WebViewSolution.exe")
- 当您从 windows 资源管理器手动启动它时,确认
WebViewSolution.exe
成功启动。
var ps = Process.Start("WebViewSolution.exe");
Console.WriteLine(ps.HasExited);