3

编译了 Inno Setup 脚本 (IS v5.4.2),但运行生成的 Setup.exe 时,出现错误对话框,内容为:内部错误:ExtractTemporaryFile:找不到文件“isxdl.dll”。

我在系统上的任何地方都找不到这个 .DLL。虽然这可能有一个很好的技术原因,但我发现 Inno Setup 编译器没有抱怨 ISXDL.DLL 不可用,这让我感到困惑。

============================== *自己找到答案*

经过一番搜索和实验,我自己发现了这个问题。显然,我曾经安装过包含 ISXDL.DLL 文件的“ISTool”,并使用“ISTool”来构造和/或编译有问题的 .ISS 脚本。这在设置中放置了一些参考,如下所示。

procedure isxdl_AddFile(URL, Filename: AnsiString);
external 'isxdl_AddFile@files:isxdl.dll stdcall';
function isxdl_DownloadFiles(hWnd: Integer): Integer;
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
function isxdl_SetOption(Option, Value: AnsiString): Integer;
external 'isxdl_SetOption@files:isxdl.dll stdcall';

无论出于何种原因,我卸载了 ISTool(可能是因为 ISTool 未列出,截至 2011 年 5 月 20 日,在 Inno Setup 3rd Party Tools页面上),但这使相关代码仍在我的脚本中,使用编译好创新设置。

4

2 回答 2

3

经过一番搜索和实验,我自己发现了这个问题。显然,我曾经(即一年或更长时间)安装了“ISTool”,其中包含 ISXDL.DLL 文件,并使用“ISTool”来构造和/或编译有问题的 .ISS 脚本。这在 .ISS 设置脚本中放置了一些参考,如下所示。

procedure isxdl_AddFile(URL, Filename: AnsiString);
external 'isxdl_AddFile@files:isxdl.dll stdcall';
function isxdl_DownloadFiles(hWnd: Integer): Integer;
external 'isxdl_DownloadFiles@files:isxdl.dll stdcall';
function isxdl_SetOption(Option, Value: AnsiString): Integer;
external 'isxdl_SetOption@files:isxdl.dll stdcall';

无论出于何种原因,我卸载了 ISTool(可能是由于 ISTool 未列出,截至 2011 年 5 月 20 日,在 Inno Setup 3rd Party Tools页面上),但这使相关代码仍在我的脚本中,随后编译好使用“Inno 设置”。

为了纠正这个问题,我刚刚删除了包含对“_isxdl”的引用的代码。

于 2011-05-31T14:23:22.733 回答
2

您需要在您的[Files]部分中列出 ISXDL.DLL 才能使用列出的函数。

ISXDL.DLL 的源代码可以在项目页面上找到。

于 2011-05-30T04:03:01.620 回答