в журнале.
оматически генерирую файл WiX для моего установщика на основе каталога (он предназначен для веб-приложения) и содержит ссылки на следующие 3 .Net сборки:
Migrator.dllMigrator.Framework.dllMigrator.Providers.dllА вот генерация фрагментов WiX:
<Fragment>
<DirectoryRef Id="bin">
<Component Id="bin.Migrator.dll" Guid="*">
<File Id="bin.Migrator.dll" Name="Migrator.dll" KeyPath="yes" Source="..\WebApplication\bin\Migrator.dll" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="bin">
<Component Id="bin.Migrator.Framework.dll" Guid="*">
<File Id="bin.Migrator.Framework.dll" Name="Migrator.Framework.dll" KeyPath="yes" Source="..\WebApplication\bin\Migrator.Framework.dll" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<DirectoryRef Id="bin">
<Component Id="bin.Migrator.Providers.dll" Guid="*">
<File Id="bin.Migrator.Providers.dll" Name="Migrator.Providers.dll" KeyPath="yes" Source="..\WebApplication\bin\Migrator.Providers.dll" />
</Component>
</DirectoryRef>
</Fragment>
Мы использовали одну и ту же базовую структуру установщика в течение года или около того, но недавно мы обновили библиотеки Migrator.Net до новой внутренней сборки, в которой изменились номера версий и атрибуты заголовка / описания сборки (выгружены из Orca).
bin.Migrator.dll bin.Migrator.dll Migrator.dll 16384 3.0.1317.0 0 512 78bin.Migrator.Framework.dll bin.Migrator.Framework.dll pi0mozkr.dll | Migrator.Framework.dll 20992 3.0.1317.0 0 512 79bin.Migrator.Providers.dll bin.Migrator.Providers.dll jq05waoy.dll | Migrator.Providers.dll 73216 3.0.1317.0 0 512 82Чтобы после обновления библиотек:
bin.Migrator.dll bin.Migrator.dll Migrator.dll 16384 3.2.0.1 0 512 55bin.Migrator.Framework.dll bin.Migrator.Framework.dll pi0mozkr.dll | Migrator.Framework.dll 28160 3.2.0.1 0 512 56bin.Migrator.Providers.dll bin.Migrator.Providers.dll jq05waoy.dll | Migrator.Providers.dll 79872 3.2.0.1 0 512 57Хотя младшая версия выше, ревизия теперь 1 вместо 1317.
С тех пор мы обнаружили, что при обновлении до новой версии эти 3 файла не копируются (поэтому процесс обновления удаляет старые файлы, но не устанавливает новые файлы).
Будет ли это связано с изменением номера версии сборок и, если да, есть ли способ переопределить это поведение (мы просто хотим удалить все, а затем скопировать все заново, независимо от версии).
Интересно, что если вы устанавливаете, затем повторно запускаете установщик и выполняете «восстановление», оно действительно копирует новые файлы - я полагаю, это потому, что при восстановлении файла больше нет, поэтому логика проверки версии файла не применяется?
Будем весьма благодарны за любые подсказки относительно того, как это работает, и как избежать возникшей у нас проблемы с обновлением.