2015-11-15 187 views
0

我有一个解决方案,它依赖于7zip的sfx。为了保持整个解决方案(加上sfx)的管理和协调,我希望创建一个新项目来存放sfx使用的所有源文件,并且在构建时执行命令行,告诉7zip构建源代码文件中的sfx,并放入输出中,以便可以在同一解决方案中通过实际的Visual Studio项目引用它。使用命令创建Visual Studio项目

我想我可以通过使用Build事件并提供相应的宏来确定命令行,以确保7zip的输出放置到具有适当名称的目标文件夹中,以便其可以被其他VS项目正确引用。但是我不确定的是我需要使用什么样的Visual Studio项目或者告诉Visual Studio的步骤,在这个项目中不会有任何代码要被编译,并且它只需要执行我给出的脚本它。

我能想出最接近的是VS的Make项目,但我不知道这是否正确,因为这与Make完全无关。

那么,我需要使用什么样的Visual Studio项目模板?如果为空,那么我需要执行哪些配置,以便它不会尝试寻找一些代码文件进行编译,而只是将脚本作为解决方案构建的一部分执行?

回答

0

现在看来,使用C++ Makefile项目工作。我必须做一些配置:

1)我不得不指定项目的“配置类型”为“实用程序” 2)我使用预生成事件并提供了一个命令来调用项目中包含的批处理文件。批处理文件然后处理所有事情。 3)通常情况下,不考虑非C++文件来确定是否需要构建或者它是否已更新。为了确保在编辑批处理文件或其他密钥文件时执行新的构建,我将文件的“文件类型”设置为“MakeFile”。尽管它实际上并不是Make文件,但它确保对文件所做的任何编辑都会导致新的构建。

到目前为止我发现的缺点是:

1)C++使用 “过滤器”,而不是文件夹。因此,保持文件在同一目录结构中是一个大的PITA。可以“包含”文件,并在“过滤器”和磁盘上的实际目录结构之间获得一对一的映射,但这很烦人和乏味。希望这是一个C#项目

2)我有点担心它将如何检测新文件或其他文件的变化,我没有明确设置为“MakeFile”。我期望源代码是稳定的,但我担心当我意识到需要一个新文件并添加它时,我可能会忘记并没有注意到包含新文件的构建不正确。

我不确定这是否是最好的方法,但这适用于我的目的 - 拥有一个项目来管理外部工具,作为更大构建过程的一部分。

相关问题