2012-02-13 3 views
4

У меня есть один файл в моей файловой структуре (база данных FireBird), которая, как только она будет установлена ​​в первый раз, никогда не должна перезаписываться снова. Это кажется довольно простой задачей, но я потратил слишком много времени, пытаясь найти ответ.InstallShield как никогда не перезаписывать файл

Если вы щелкните правой кнопкой мыши по файлу и выберите «Свойства», установите флажок «Всегда перезаписывать». Я бы просто сохранил номер версии один и тот же, что, как мне сказали, помешает перезаписывать файл, но это может быть опасно в моей ситуации, и в реальных свойствах файла нет места даже для того, чтобы номер версии.

Я предполагал, что это будет иметь довольно прямое решение, но я, конечно, еще не нашел его.

Заранее благодарю вас за помощь, ребята. Ты жжешь.

ответ

5

два подхода:

1) «простой» способ для InstallShield, чтобы не перезаписать файл для этого, чтобы не устанавливать его в первую очередь. Установите его как a.txt и попросите приложение скопировать его в b.txt при первом запуске, и я nstallShield никогда не узнает о b.txt в первую очередь.

2) Создайте компонент в InstallShield и добавьте свою базу данных в качестве ключевого файла. Предположительно, содержимое базы данных со временем изменится и приведет к дате создания и дате изменения, которые отличаются. В этом случае правила установки версий Windows Installer (Windows Installer на самом деле) InstallShield (OMUS) определяют, что файл не будет перезаписан.

3) Если # 2 все еще не работает, установите атрибут Never Overwrite для компонента на Yes.

Помните, что калькуляция файлов основана на KeyFile. Независимо от того, что подскажет ключевой файл, все остальные файлы в компоненте будут делать то же самое в отношении перезаписи. «Always Overwrite» - это «версия, лежащая», где мы неверно указываем MSI, что файл Verison имеет значение 65535.0.0.0, и поэтому правило Create/Modification заменяется правилом версий Versioned trumps Non-Versioned.

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