3

卸载应用程序时,我想在我的 .iss 中导入两个 dll。我找不到办法做到这一点。

procedure Installed();
external 'Installed@files:StatisticInstallInfo.dll,adcore.dll cdecl  setuponly ';

procedure Uninstalled();
external 'Uninstalled@{app}\StatisticInstallInfo.dll cdecl  uninstallonly';

adcore.dll我也想在程序中导入Uninstalled。它失败了,如下所示;

[Files]
Source: {#MyDefaultPackDir}\adcore.dll; DestDir: "{app}"
Source: {#MyDefaultPackDir}\StatisticInstallInfo.dll; DestDir: "{app}"
[Code]
procedure Uninstalled();
external 'Uninstalled@files:StatisticInstallInfo.dll,adcore.dll cdecl  uninstallonly';

这没用。

Installed()并且Uninstalled()在 中StatisticInstallInfo.dll,这取决于adcore.dll

4

1 回答 1

6

当安装程序运行时,Inno 可以访问设置的内容,因此可以使用files:file1.dll,file2.dll语法提取所需的任何文件。

在卸载时,Inno 不再可以访问设置的内容,因此它需要依赖于您在安装时使用普通[Files]条目提取的任何内容。因此,它不再关心依赖关系并将其留给您。

[Files]
Source: "StatisticInstallInfo.dll"; DestDir: "{app}"
Source: "adcore.dll"; DestDir: "{app}"

[Code]
procedure Installed();
external 'Installed@files:StatisticInstallInfo.dll,adcore.dll cdecl setuponly';

procedure Uninstalled();
external 'Uninstalled@{app}\StatisticInstallInfo.dll cdecl uninstallonly';

根据您调用该函数的时间(如果在安装本身之后),您可以放弃files:...语法并{app}\StatisticInstallInfo.dll在两种情况下都使用。

于 2012-09-25T12:24:08.687 回答