我正在使用Wix编写安装代码,我需要将整个文件夹安装到某个位置,然后将该文件夹复制到几个不同的位置,我可以使用代码逐个将这些文件安装到这些位置,但该文件夹大小约为80 Mb,因此它会增加我的MSI大小(80 x 3 = 240 Mb)。
我想到的一个解决方案是将文件夹压缩成zip文件,然后使用CopyFile元素复制文件,然后解压缩三个文件夹,但这会增加安装时间。
有没有办法使用本机wix代码执行此操作,还是自定义操作是我唯一的解决方案? TNKS
答案 0 :(得分:4)
WiX的“智能出租车”重复使用文件存储数据的一个实例,即使它在不同目录中被多次包含。见http://robmensching.com/blog/posts/2007/6/1/quotSmart-cabbingquot-added-to-WiX-toolset。所以你有重复的创作,但没有膨胀.msi。
答案 1 :(得分:3)
如果您想按照MSI本身提供的方式进行操作,则需要为每个要复制的文件创建3个CopyFile元素。
CopyFile元素映射到DuplicateFile表,该表由DuplicateFiles操作处理。它没有* / 的概念,而是需要1到1的映射回File.File_表/列。 (WiX中的文件@Id)
您当然可以决定不喜欢这种模式并推出自己的自定义操作来处理这项工作,但如果这样做,请确保您处理安装,卸载,修复,回滚,升级等操作。 MSI的限制可能很烦人,但如果您使用它,您可以获得很多“免费”(尽管不是无痛)。