0

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

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

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

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

4

1 回答 1

0

目前,使用 C++ Makefile Project 似乎可行。我不得不做一些配置:

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

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

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

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

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

于 2015-11-15T23:55:23.647 回答