MSI 执行期间忽略 DuplicateFile 表

MSI 执行期间忽略 DuplicateFile 表

我在 Installshield 中构建了一个 MSI,我希望在安装过程中将一些文件从一个位置复制到另一个位置。由于我想复制到目标机器上的文件是 MSI 安装的文件,因此我使用了 DuplicateFile 表。

MSI 的目的是备份和更新一些目标机器上的一些 EXE 文件。

我在 DuplicateFile 表中添加了 3 个条目,如下所示:

KeyFile : DUPSTMMFILE
Component: STMM (reference to component in the project)
File: xxx (reference to file in the project, under the selected component)
DestName: stmedia.q9644
DestFolder: BACKUPS

对于目标文件夹(备份),我在目录表中创建了一个新条目:

Directory : BACKUPS
Directory_Parent: INSTALLDIR
DefaultDir : BACKUPS
IsAttributes: 0

当我建造背部时,没有出现任何错误。

在运行 MSI 时,我期望的文件被替换,但我期望存在的副本却不存在。

当我记录输出时,DuplicateFiles 似乎甚至没有识别出有需要处理的条目。

我可能遗漏了哪些步骤?

MSI (s) (C0:90) [17:20:15:078]: Doing action: DuplicateFiles
Action 17:20:15: DuplicateFiles. Creating duplicate files
Action start 17:20:15: DuplicateFiles.
DuplicateFiles: File: Creating duplicate files,  Directory: ,  Size: 
Action ended 17:20:15: DuplicateFiles. Return value 1.
MSI (s) (C0:90) [17:20:15:078]: Doing action: BindImage
Action 17:20:15: BindImage. Binding executables
Action start 17:20:15: BindImage.
Action ended 17:20:15: BindImage. Return value 1.

答案1

我想发表评论但我还没有要点。

当您提到文件:xxx(引用项目中选定组件下的文件)时 - 您是否使用了文件表中该文件的文件名或文件键?

我还能说多少次文件......

文档说使用文件密钥。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa368335(v=vs.85).aspx

相关内容