【发布时间】:2014-05-08 23:01:57
【问题描述】:
我有一个 Visual Studio 2010 C++ 项目,其中包含需要使用生成 C++ 代码的内部自定义构建工具处理的文件。
我已经完成了为每个文件添加自定义构建工具的步骤。在自定义构建工具命令行中,使用“调用”来确保自定义构建工具在编译 C++ 代码之前针对所有这些文件运行。
唯一的问题是自定义构建工具需要从文件所在的目录运行,而不是从 Visual Studio 解决方案的位置运行。
我现在看到了一些可能的选择,但没有一个是理想的:
- 将第一个文件上的自定义构建工具命令行更改为:“cd workingdir && call custom-tool ...”我不喜欢这个,因为它很脆弱——如果我在第一个文件之前添加一个按字母顺序排列的新文件,我必须记住,它需要自定义构建步骤中的这个特殊步骤。
- 创建一个批处理文件来更改工作目录,调用自定义构建工具,然后更改回来。从 Visual Studio 调用此批处理文件。
- 使用“start”而不是“call”来调用自定义构建工具。这带来了为每个文件打开一个命令 shell 的缺点(看起来这些命令 shell 需要手动关闭)。
在工作目录中的文件上运行自定义构建工具是否有更好的选择?
谢谢。
【问题讨论】:
-
由于该工具是内部制作的,是否可以将其更改为将相关文件的完整路径作为参数,cd 到其工作目录,然后在那里执行任何操作?
-
我会使用我认为的批处理文件。
-
谢谢!我们最终可能会更改构建工具,但遗憾的是对于我的项目来说还不够快。
-
当您查看使用
Start时,我假设使用其/D选项,您是否尝试包含其/B和必要时/Wait选项?例如Start ["Title"] [/D Path] [/Wait] [/B] [Command/Program] [Parameters].
标签: c++ visual-studio-2010 visual-studio batch-file visual-studio-2012