TFS2008-安装程序项目的MSI和cab文件中的打包

问题描述

|| 我正在使用自动生成和安装程序项目在TFS 2008中创建msi文件。当用户使用MSI文件进行安装时,需要在用户计算机上创建一个具有数千个文件且大小为数百MB的大文件夹结构。使用TFS安装程序项目时,如果我添加单个文件,则我的installer.vdproj会变得很大且无法维护。 那么,有没有一种好的方法可以将这些文件作为一个单元来处理?我现在可以想到压缩机制,它包括两个部分:- 如何将文件压缩成cab文件(可能在MSBulid进程中)?似乎makecab命令一次只占用一个文件? 如何修改安装程序项目,使cab文件成为MSI的一部分,并且在用户计算机上将cab文件解压缩以创建文件夹结构?我可以同时拥有cab文件和MSI(这样cab文件不属于MSI)吗?其余的dll进入MSI。 谢谢     

解决方法

Windows Install SDK中的工具(例如MSIFILER.EXE)可以轻松编写脚本,以将整个文件目录(例如)加载到MSI \的文件存储或CAB中。 对于您的情况,您希望将脚本配置为作为构建后事件运行,以便首先构建安装项目的MSI,然后脚本对其进行修改。 您是正确的,makecab.exe一次仅占用一个文件。您可以使用CMD Shell FOR循环将它们一一添加(例如
FOR /F %%file IN (\'dir /b /s\') DO makecab %%file output.cab
)。就个人而言,我更喜欢7-zip之类的存档工具,这些工具也可以从命令行编写脚本。 有几种方法可以将文件添加到Windows Installer程序包中(例如WiImport.vbs,MAKEMSI或手动)... ..但也许您不想这样做。我认为最好只包含归档文件(zip,cab等),并在安装项目中创建一个自定义操作以在安装过程中将其解压缩。