在C#程序中使用包含的命令行exe:路径是什么?

时间:2014-03-10 21:14:58

标签: c# command-line-arguments visual-c#-express-2010

我搜索并找到了答案的片段。 我正在构建整个工作室的分发工具。 我有一个.exe命令行程序(转换资产格式的工具)作为我的VS项目中的资源。

基于另一个线程,我将包含的.exe的“复制到输出目录”属性设置为“如果更新则复制”;因此,当其他人安装它时,它将被包括在内。

现在我想通过传递一个构建命令行的字符串来调用带有参数的可执行文件,例如

  

“C:\ path \ to \ myProgram.exe -inputFilename -outputFilename -options”

问题: C:\ path \ to \ myProgram.exe 我真正需要什么? 我的命令行可执行文件最终安装在最终用户的计算机上的哪个位置?

或者将它作为资源嵌入是否打开了一种新的调用方式(使用args)?

1 个答案:

答案 0 :(得分:2)

复制到输出文件夹可确保“资源”具有可执行文件的相对位置。使用复制到输出文件夹的方法,您可以使用以下代码获取主可执行文件的位置:

String baseDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

此时您可以使用

Path.Combine(baseDir, "myProgram.exe")

获得最终路径。如果它位于“tools”文件夹中,则必须在第二个参数中包含该参数(该参数是您的单独程序的相对路径)。命令行参数进入ProcessStartInfo对象。