我想在安装新数据库之前删除旧数据库,以便为用户更新它。
我有以下情况:
在我的Components
部分,我为用户提供了一个选项:
[Components]
Name: "updateDatabase"; Description: "Update Database"; Types: custom; \
Flags: checkablealone disablenouninstallwarning
我在Code
部分中有一个程序,如果用户选择此选项,则在运行部分中执行,然后再安装新程序。
[Code]
procedure RemoveOldDatabase();
begin
...
end;
[Run]
**--> Here I want to call RemoveOldDatabase if Components: updateDatabase is checked**
Filename: "database.exe"; StatusMsg: "Installing new database..."; Components: updateDatabase
新数据库的安装工作正常。问题是我想在安装新程序之前删除旧程序,调用程序RemoveOldDatabase
。
只能使用Inno Setup吗?
感谢。
答案 0 :(得分:6)
在我看来,一种非常简单且仍然具有描述性的方法是将您的过程作为BeforeInstall
部分条目的[Run]
参数函数执行。 BeforeInstall
参数函数在处理条目之前执行一次(并且仅在处理条目时执行,在您的情况下是在选择组件时)。你会写这个:
[Run]
Filename: "database.exe"; Components: UpdateDatabase; BeforeInstall: RemoveOldDatabase
[Code]
procedure RemoveOldDatabase;
begin
{ ... }
end;