My WiX installer (Wix 3.10, MSI 4.5) uses MajorUpgrade
for updating. The files to be installed are harvested with heat.exe
in pre-build. The current (older) msi file contains a file nlog.dll
(which came with a NuGet package v4.1.0
) that has a file version of 4.1.0.0
, a product version of 4.1.0
and last write time of 2015-09-01
.
Since the nlog team ran into some strong naming issues, they published an updated NuGet package v4.1.1
, containing an updated nlog.dll
with its file version decreased back to 4.0.0.0
while its product version has been increased to 4.1.1
, last write time is 2015-09-14
.
Now I'm running into a related issue as Robbie did here: wix major upgrade not installing all files: When I install the new msi package and the major upgrade is performed, the present nlog.dll
(which is newer according to its file version, but older according to its file date and product version) is being removed, but the new nlog.dll
isn't installed.
However, using Schedule="afterInstallExecute"
or Schedule="afterInstallFinalize"
as suggested won't do the trick for me. Instead of removing the newer file and not installing the older one as in Robbie's case, it doesn't overwrite the present file, and just leaves it in place.
Long story short, I would like my installer to simply install all files that come with it, regardless of any file/product/assembly versioning stuff. There are valid circumstances in which replacing a newer file with an older one is desired. Can't you just tell the installer engine to ignore file versions/dates? If not, what are my options?