Как добавить номер версии в файл Access в .msi - PullRequest
1 голос
/ 19 сентября 2008

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

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

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

Ответы [ 4 ]

2 голосов
/ 20 сентября 2008

@ LanceSc

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

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

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

0 голосов
/ 19 сентября 2008

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

0 голосов
/ 20 сентября 2008

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

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

0 голосов
/ 19 сентября 2008

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

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

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

...