在 Visual Studio 2008 中将目录添加到 CAB 项目

Posted

技术标签:

【中文标题】在 Visual Studio 2008 中将目录添加到 CAB 项目【英文标题】:Add a directory to a CAB project in Visual Studio 2008 【发布时间】:2011-05-27 18:10:12 【问题描述】:

我们刚刚将帮助文件从 CHM 格式转换为 html。由于我们的安装程序是 Wix,因此我没有将每个新文件添加到安装程序中,而是构建了一个 7-Zip SFX 文件,该文件将我们的 Webhelp 文件夹中的每个文档打包成一个自解压存档。然后我们在 Wix 中有一个 CA,可以将这些内容提取到适当的目录中。

我使用这种方法遇到的问题是,我们使用 McAfee 的客户现在收到关于在安装程序中检测到 Heuristic.BehavesLike.Exploit.CodeExec.FFJ 的 AV 警告,该安装程序从使用此 SFX 存档的第一个版本开始.所以现在我正在考虑将我们的帮助文件打包到 CAB 中,但看起来每次更新我们的帮助文件时,我们都必须进入项目并手动添加文件。

有没有办法告诉 Visual Studio 在构建时将文件夹中的所有内容添加到 CAB 文件中?

【问题讨论】:

您可以使用 WiX 安装 HTML 文件。运行heat.exe 以生成带有HTML 帮助文件的fragment,并将该片段添加到您的安装项目中。您不需要自定义操作,MSI 将自动显示进度并删除您的帮助文件。 【参考方案1】:

您可以使用MAKECAB 命令行工具在项目属性pre build events 中创建您的驾驶室。然后将 cab 复制到你需要的 wix 文件位置。

【讨论】:

【参考方案2】:

我最终遵循了 Alexey Ivanov 的建议(问题下的第一条评论),这也使得我不必在卸载的提交阶段手动清理提取的文件。

【讨论】:

以上是关于在 Visual Studio 2008 中将目录添加到 CAB 项目的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2008 中将应用程序构建为发行版时出现问题 - C++

如何在 Visual Studio 2008 中将程序集信息添加到网站/应用程序

我可以在 Visual Studio 2008 中使用 Visual Studio 6 编译的 C++ 静态库吗?

可以在 Visual Studio 2008 中添加链接文件

在 Visual Studio 2008 中配置 FxCop 以运行规则子集

Visual Studio 2008 自动恢复目录位置更改