Мой установщик 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
.Wix major upgrade, замените файлы независимо от более новой версии файла
Поскольку Nlog команда столкнулась с некоторыми сильными вопросами именования, они опубликовали обновленный NuGet пакет v4.1.1
, содержащее обновленный nlog.dll
с его версией файла снизились обратно 4.0.0.0
, а его версия продукта была увеличены до 4.1.1
, время последней записи есть 2015-09-14
.
Теперь я бегу в связи с данным вопросом, как сделал Робби здесь: wix major upgrade not installing all files: Когда я устанавливаю новый пакет MSI и крупное обновление выполняется, настоящее nlog.dll
(который новее согласно его версии файла, но старше по к его дате файла и версии продукта) удаляется, но новый nlog.dll
не установлен.
Однако, используя Schedule="afterInstallExecute"
или Schedule="afterInstallFinalize"
, как предложено, не будет делать трюк для меня. Вместо того, чтобы удалять новый файл, а не устанавливать более старый, как в случае с Робби, он не перезаписывает настоящий файл и просто оставляет его на месте.
Короче говоря, я хотел бы, чтобы мой установщик просто установил все файлы, которые поставляются вместе с ним, независимо от каких-либо файлов/продуктов для сборки/сборки версий. Существуют действительные обстоятельства, при которых требуется замена нового файла на более старый. Не можете ли вы просто сообщить движку установщика игнорировать версии файлов/даты? Если нет, каковы мои варианты?
Установка '<Идентификатор свойства =" REINSTALLMODE "Значение =" amus "/>' внутри узла ' ' фактически работает. Поскольку я не устанавливаю какие-либо общие компоненты, которые могут быть случайно оценены (см. Комментарий Джеймса здесь: http://stackoverflow.com/a/6873475/2256445), я думаю, что смогу использовать это решение. –
Hannes
Раньше я считал «версию лжи», как вы предполагали, но это не жизнеспособный вариант по той причине, о которой вы указали. Сброс nlog или изменение dll является слишком узким решением imo, поскольку это может быть не вариант в других подобных случаях. Большое спасибо за ваш вклад. – Hannes
Лично я не являюсь поклонником тепла по причинам, описанным здесь http://blog.iswix.com/2007/06/dealing-with-very-large-number-of-files.html –