应用修补程序后未安装功能资源

时间:2015-07-13 15:11:53

标签: windows-installer installer patch

我正在努力解决安装问题(我认为这可能是由Windows Installer引擎中的故障引起的)。但是,我还是想问一下,以防其他人提供一些有用的见解。

我将此作为测试案例制定,以便更容易理解:

  1. 构建包含三个功能(F1,F2和F3)的MSI设置(v1.0.0); F2功能包含一个组件,其关键资源是" myApp.exe" (v1)申请文件
  2. 构建升级的MSI设置(v1.0.1),该设置与先前的ProductVersion补丁兼容,并包含现有功能中添加的一些新组件以及" myApp.exe"的更新资源。 (v2)申请
  3. 在上述MSI设置之间构建补丁;请注意,该修补程序符合所有修补程序创建规则
  4. 安装MSI v1并仅选择F1和F3功能进行安装;不应该安装F2
  5. 安装补丁
  6. 转到"控制面板 - >程序和功能"并运行"修改",选择要安装的F2功能并完成(修复)安装
  7. 结果:" myApp.exe"应用程序文件未在其目标位置安装/复制,即使它似乎应该从日志文件中。以下是日志中的一些相关行:

    FileCopy(SourceName=myA~1.exe|myApp.exe,SourceCabKey=myApp.exe,DestName=myApp.exe,Attributes=0,FileSize=713024,PerTick=32768,,VerifyMedia=1,,TotalPatches=1,,,CheckCRC=0,Version=2.0.0,Language=0,...)
    ...
    MSI (s) (60:5C) [11:26:51:658]: File: C:\Program Files\Test\myApp.exe;   To be installed;   Smart patch;   No existing file
    MSI (s) (60:5C) [11:26:51:658]: Redirecting file copy of 'C:\Program Files\Test\myApp.exe' to 'C:\Config.Msi\PT129.tmp'.   A subsequent patch will update the intermediate file, and then copy over the original.
    

    任何想法都非常受欢迎。

1 个答案:

答案 0 :(得分:2)

感谢Phil,我通过将IncludeWholeFilesOnly补丁属性设置为1来实现此目的。