Как добавить номер версии в файл Access в формате .msi

StackOverflow https://stackoverflow.com/questions/102374

Вопрос

Я строю установку с использованием VS 2003.В состав установки входит книга Excel и две базы данных Access.Мне нужно заставить файлы Access загружаться независимо от даты создания/модификации существующих баз данных на компьютере пользователя.В настоящее время я использую ORCA для принудительного указания номера версии для двух файлов, но хотел бы найти более простое и элегантное решение (ручное редактирование файла .msi не является чем-то, что я считаю «лучшей практикой»).

Есть ли способ добавить номер версии к базам данных с помощью Access, который затем будет использоваться при установке?

Есть ли лучший способ сделать это?

Это было полезно?

Решение

@LanceSc

Я не думаю, что таблица MsiFileHash здесь поможет.Видеть это отличный пост Аарон Стебнер.Скорее всего, дата последнего изменения базы данных Access на клиентском компьютере будет отличаться от даты ее создания.Установщик Windows правильно предположит, что файл изменился с момента установки, и не заменит его.

Правильный способ решить эту проблему (как указал автор вопроса) — установить поле «Версия» в таблице файлов.

К сожалению, проекты установки в Visual Studio очень ограничены.Вы можете создать простой сценарий VBS, который будет изменять записи в таблице файлов (с использованием SQL), но вместо этого я предлагаю рассмотреть альтернативные инструменты разработки настроек, такие как WiX, InstallShield или Wise.WiX на мой взгляд лучший.

Другие советы

Поскольку похоже, что у вас нет правильных версий ресурсов, пробовали ли вы изменить свойство REINSTALLMODE?

IIRC, в значении по умолчанию «omus» это флаг «o», который позволяет вам установить только если у вас более старая версия.Вы можете попробовать изменить это значение с «о» на «е».Имейте в виду, что это приведет к перезаписыванию отсутствующих, более старых файлов И с одинаковой версией.

Ручное добавление версий было неправильным способом начать, но это должно гарантировать, что вам не придется вручную увеличивать номера версий, чтобы их установить.

Посмотрите Build Events для вашего проекта.Версии файлов можно будет изменить во время события сборки.[Только не цитируйте меня по этому поводу].Я не уверен, сможете вы или нет, но я бы начал исследовать это место в первую очередь.

Вам следует заполнить Мсифилехэш таблица для этих файлов.Посмотрите файл WiFilVer.vbs, который является частью Microsoft Platform SDK, чтобы узнать, как это сделать.

Другое мое предложение — посмотреть WiX вместо Visual Studio 2003 для установки.Visual Studio 2003 имеет очень ограниченную поддержку MSI, и вы можете потратить много времени на борьбу с ней, вместо того, чтобы выполнить полезную работу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top