简体   繁体   English

运行由Inno Setup创建的Setup.exe并获取“ ...'“ isxdl.dll'未找到。”错误

[英]Running Setup.exe created by Inno Setup and get “… '”isxdl.dll' was not found." error

Compiled a Inno Setup script (IS v5.4.2), but when ran resulting Setup.exe, an error dialog appeared with content: Internal error: ExtractTemporaryFile: The file "isxdl.dll" was not found. 编译了一个Inno Setup脚本(IS v5.4.2),但是运行生成的Setup.exe时,出现一个错误对话框,内容如下:内部错误:ExtractTemporaryFile:找不到文件“ isxdl.dll”。

I could not find this .DLL anywhere on my system. 我在系统上的任何地方都找不到此.DLL。 While there's probably a good technical reason for it, I found it confusing that the Inno Setup compiler did not complain that the ISXDL.DLL was not available. 尽管可能有很好的技术原因,但我发现Inno Setup编译器没有抱怨ISXDL.DLL不可用,这使我感到困惑。

============================= * Found Answer Myself * =========================== * 找到了自己的答案*

I found the issue myself after a bit of searching and experimentation. 经过一些搜索和试验,我自己找到了问题。 Evidently I had at one point installed "ISTool", which contains the ISXDL.DLL file, and used "ISTool" to construct and/or compile the .ISS script in question. 显然,我曾经安装了包含ISXDL.DLL文件的“ ISTool”,并使用“ ISTool”来构建和/或编译相关的.ISS脚本。 This placed some references like the following in the setup. 这在安装程序中放置了一些类似于以下内容的参考。

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';

For whatever reason, I uninstalled ISTool (possibly motivated by fact that ISTool is not listed, as of May 20, 2011, on the Inno Setup 3rd Party Tools page), but this left the related code still in my script, which compiled okay using Inno Setup. 无论出于何种原因,我都卸载了ISTool(可能是由于截至2011年5月20日,在Inno Setup 3rd Party Tools页面上未列出ISTool),但这仍然使相关代码保留在我的脚本中,该脚本可以使用创新设置。

I found the issue myself after a bit of searching and experimentation. 经过一些搜索和试验,我自己找到了问题。 Evidently I had at one point (ie, a year or more ago) installed "ISTool", which contains the ISXDL.DLL file, and used "ISTool" to construct and/or compile the .ISS script in question. 显然,我曾经安装过“ ISTool”(其中包含ISXDL.DLL文件),并使用“ ISTool”来构建和/或编译有问题的.ISS脚本(即一年或更长时间)。 This placed some references like the following in the .ISS setup script. 这在.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';

For whatever reason, I uninstalled ISTool (possibly motivated by fact that ISTool is not listed, as of May 20, 2011, on the Inno Setup 3rd Party Tools page), but this left the related code still in my script, which subsequently compiled okay using "Inno Setup". 无论出于何种原因,我都卸载了ISTool(可能是由于2011年5月20日未在“ Inno Setup 3rd Party Tools”页面上列出ISTool),但这仍然使相关代码保留在我的脚本中,随后可以正常编译了使用“ Inno Setup”。

To correct this, I just deleted the code containing the references to "_isxdl". 为了解决这个问题,我刚刚删除了包含对“ _isxdl”的引用的代码。

You need to have ISXDL.DLL listed in your [Files] section to use the listed functions. 您需要在[Files]部分中列出ISXDL.DLL,才能使用列出的功能。

The source code to ISXDL.DLL can be found on the the Project Page . ISXDL.DLL的源代码可以在“ 项目页面”上找到。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM