我的 WiX 安装程序(Wix 3.10、MSI 4.5)MajorUpgrade
用于更新。要安装的文件是heat.exe
在预构建中收集的。当前(旧)msi 文件包含一个文件nlog.dll
(随 NuGet 包一起提供v4.1.0
),其文件版本为4.1.0.0
,产品版本为4.1.0
,上次写入时间为2015-09-01
.
由于 nlog 团队遇到了一些严重的命名问题,他们发布了一个更新的 NuGet 包v4.1.1
,其中包含一个更新nlog.dll
,其文件版本降低回,4.0.0.0
而其产品版本提高到4.1.1
,最后写入时间为2015-09-14
.
现在我遇到了 Robbie 在这里所做的相关问题:wix major upgrade not installed all files:当我安装新的 msi 包并执行主要升级时,当前nlog.dll
(根据其文件版本较新,但较旧根据其文件日期和产品版本)正在被删除,但nlog.dll
没有安装新的。
但是,使用Schedule="afterInstallExecute"
orSchedule="afterInstallFinalize"
按照建议不会对我有用。与 Robbie 的情况不同,它不会删除较新的文件并且不安装较旧的文件,而是不会覆盖当前文件,而是将其保留在原处。
长话短说,我希望我的安装程序简单地安装它附带的所有文件,而不管任何文件/产品/程序集版本控制的东西。在某些情况下,需要用旧文件替换新文件。你不能告诉安装引擎忽略文件版本/日期吗?如果没有,我有什么选择?