是否可以在我的项目中包含二进制文件并使用它?

时间:2010-06-09 18:28:18

标签: c# visual-studio

我有一个二进制文件,用作操作某些文件的命令行工具 - tool.exe。我想在我的Visual Studio 2008项目中包含它,并从我的C#代码中使用它。我把它放在一个名为“Resources”的文件夹中,它还包含我项目使用的其他文件。

我想做Process myproc = Process.Start("Resources/tool.exe");之类的事情,但我认为C#存在问题,因为它正在查看文件系统而不是项目。

如何做到这一点?

3 个答案:

答案 0 :(得分:4)

您几乎都在描述正确的方法。您必须确保将二进制文件设置为相对于应用程序复制到正确的位置 - 您可以通过将Build action设置为content(在文件属性中)来实现此目的,这样它就会被复制到正确的位置。

此构建操作默认Copy to Ouput directory属性为Copy Always,在这种情况下,Copy if newer是安全的。确保它是这两个中的一个。

有关更多详细信息,请参阅this所有问题和答案。

答案 1 :(得分:0)

如果我很好理解你的问题,请

Process myproc = Process.Start("./Resources/tool.exe");

答案 2 :(得分:0)

是的,您的应用程序将查找文件系统,相对于您的应用程序.exe文件。

您可以在项目中包含二进制文件,并将它们复制到输出目录中。将二进制文件添加到项目后,选择它并转到其属性。 “Build action”应设置为“Content”,“Copy to Output Directory”应设置为“Copy always”或“Copy if newer。”

在输出目录中构建一个文件夹并将文件添加到该文件夹​​可能会有点困难;您可能不得不满足于将二进制文件放在与可执行文件相同的目录中。一个值得关注的地方是项目构建操作;您可以添加设置文件夹的后期构建脚本,并将二进制文件移动到正确的位置。