2008-09-19 9 views
1

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

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

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

ответ

2

@LanceSc

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

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

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

0

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

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

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

0

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

0

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^