Как предотвратить Installshield от удаления файлов? - PullRequest
1 голос
/ 28 июля 2010

Я разрабатываю пакет с использованием Installshield 2008 Primer Edition, а тип проекта - MSI-проект Installscript.

Проблема, с которой я сталкиваюсь, заключается в том, что во время установки я устанавливаю некоторые файлы в следующее расположение C:\Program Files\Company\SystemFiles, из этого места я копирую и добавляю набор файлов в папку System32 , она содержит библиотеки DLL. и файлы OCX, копирование в папку System32 было выполнено с использованием Installscript.

Из-за этого во время удаления установленный файл удаляется из System32 из-за того, что другие зависимые приложения, которым требуется тот же набор DLL, перестали работать.

Я обратился к Installscript для копирования файлов из ProgramFiles в папку System32 вместо использования встроенных опций, потому что у нас возникла проблема во время обновления, чтобы избежать использования Installscript.

Даже я пробовал несколько обходных путей, таких как установка атрибутов файла после копирования файлов в System32 с использованием Installscript, например FILE_ATTR_SYSTEM , который устанавливает системный атрибут, но все равно файлы удаляются во время удаления.

Любая идея, как задать атрибуты файла как PERMANENT или SHARED ; Поможет ли это, и если да, то как мне установить его с помощью Installscript?

Ответы [ 2 ]

1 голос
/ 28 июля 2010

У меня есть 2 идеи 1) Я думаю, что вы можете использовать опцию SHARED, так как это не удалит файлы при удалении.

2) Также, когда я столкнулся с подобной проблемой, я поместил все необходимые файлы в сам каталог установки, чтобы при удалении удалялись только установленные файлы (я знаю, что это не лучшее решение)

(ПРИМЕЧАНИЕ: я работал над установкой щита около 6 лет назад, поэтому помню только некоторые вещи)

0 голосов
/ 03 февраля 2014

Вы также можете отключить ведение журнала из Install Script. Это заставит установщик «забыть», что он установил определенные файлы групп или функций.

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

Если вы не помните, чтобы включить ведение журнала после его отключения, процесс удаления может работать неправильно.

Синтаксис выглядит следующим образом: Отключить (КАРОТАЖ);

// Добавить код для копирования ваших постоянных файлов здесь Enable (КАРОТАЖ);

...