在位置上运行具有依赖项的.exe文件
Run .exe File with Dependencies on Location
我有一个Visual Studio项目(项目1(,它生成一个可执行文件(a.exe(。我还有一个项目(项目2(,它使用不同的命令行参数多次运行项目(项目一(中的可执行文件。在命令行上,我可以运行:
C:filepathSolutionProject1> a.exe //command 1
但我不能运行:
C:filepathSolutionProject2> C:filepathSolutionProject1a.exe //command 2
因为.exe文件取决于周围的文件层次结构。
在项目2中,我可以运行系统调用来执行命令2,但遇到了层次结构/位置依赖性问题。解决方案结构如下:
Solution
--> Project 1
--> a.exe
--> Project 2
--> main.cpp // this will run system call to command 2
有什么办法可以在不更改.exe文件的情况下绕过这个问题吗?
在Project2中,如何执行Project1的.exe?如果您将"当前工作目录"(CWD(设置为Project1的.exe所在的文件夹,它应该按预期工作:
var p = new ProcessStartInfo(@"C:Project1binproject1.exe");
p.WorkingDirectory = @"C:Project1bin";
Process.Start(p);
如果由于任何原因这都不起作用,您可以简单地将Project1的整个二进制输出和相关的文件结构复制到Project2的输出文件夹中。有两种方法可以做到这一点:
选项1(首选(:将Project1的二进制输出添加到Project2。要执行此操作,请右键单击解决方案资源管理器中的Project2节点,选择"添加|现有项…"。。。在"添加现有项目"对话框中,将文件类型更改为"所有文件"。导航到Project1的bin文件夹,选择Project1.exe和所有依赖项,单击"添加"按钮右侧的"向下箭头",然后选择"添加为链接"。在解决方案资源管理器中,选择Project2中新添加的文件链接,并在"属性"中将"复制到输出目录"更改为"如果更新则复制"。对于Project1的bin文件夹中的每个子文件夹,必须使用解决方案资源管理器在Project1中创建一个新的对应文件夹,然后对该子文件夹中的所有文件重复此过程。
选项2:创建一个构建后步骤,将Project1的二进制文件和周围的文件夹继承复制到Project2的bin文件夹。要执行此操作,请右键单击解决方案资源管理器中的Project2节点,然后选择"属性"。转到构建事件,然后输入构建后命令行,如以下所示:
xcopy "C:Project1bin" "$(TargetDir)" /S
首选方案1是因为有了方案2,外部工具不太可能实现项目2对项目1的依赖。在这两种情况下,必须更新Project2才能直接从Project2的输出文件夹运行Project1.exe。
祝你好运!
- 终端不会为C++文件创建.exe文件吗
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 如何在Visual Studio Code中重命名我的a.exe文件?
- 在VS Code中编译C / C ++时如何禁用自动创建EXE文件?
- 来自Visual Studio中控制台项目的exe文件?
- 在安卓应用程序中使用.exe文件
- 更新到 2020 年 5 月版本后,无法在 Visual Studio 2019 中创建.exe文件
- 有没有一种方法可以将数据从javascript发送到exe文件
- C++程序编译器在使用g++命令编译后自动运行exe文件
- 在位置上运行具有依赖项的.exe文件
- 是否可以将 EXE 文件作为 lib 文件链接到另一个项目?
- Qt .exe文件错误
- 如何检查 win32 exe 文件是否已运行?(使用 win32 API 代码)
- 获取 exe 文件夹路径的最佳方法?
- 从 Qt(release) 生成的文件执行.EXE文件时出错
- 如何将本地文件嵌入从C 项目生成的EXE文件中
- 在不同的计算机上运行.exe文件.(视觉工作室)
- 如何循环访问在 cmd 中获取参数的 exe 文件
- 将 14 GB 数据附加到 EXE 文件的末尾
- 将清单嵌入到 exe 文件