Удаление файлов и каталогов перед установкой MSI - PullRequest
2 голосов
/ 23 июня 2011

Наш продукт был установлен с помощью InstallShield Setup на протяжении многих лет.В этом году я изменил установку на MSI (WiX).Теперь MSI должен очистить каталог, который остается прежним.

Одно пользовательское действие в MSI, которое я реализовал, чтобы начать удаление старого продукта:

 <CustomAction Id="UninstallIS" Property="QtExecCA" Value="&quot;[WindowsFolder]IsUn0407.exe&quot; -f &quot;[ProgramFilesFolder]\company\product\Uninst.isu&quot;" Execute="deferred" />
 <CustomAction Id="QtExecCA" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no" />

После удаленияВ старом продукте есть временные файлы и некоторые подкаталоги, которые отличаются от клиента к клиенту и неизвестны программе установки InstallShield, поэтому я постараюсь удалить их через MSI.что я не могу использовать команды командной строки, чтобы сделать это, также «Удалить таблицу файлов» здесь бесполезно (для большого количества неизвестных файлов и многих каталогов).

Каков возможный способ сделать это?

Спасибо за любую помощь!

1 Ответ

3 голосов
/ 24 июня 2011

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

В настраиваемом действии можно использовать пользовательский код (например, EXE или DLL) или командную строку.

Обратите внимание, что отложеноПользовательские действия могут быть запланированы только после действия InstallInitialize в InstallExecuteSequence.

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

...