简体   繁体   中英

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.

I could not find this .DLL anywhere on my system. 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.

============================= * 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. 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.

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. This placed some references like the following in the .ISS setup script.

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".

To correct this, I just deleted the code containing the references to "_isxdl".

You need to have ISXDL.DLL listed in your [Files] section to use the listed functions.

The source code to ISXDL.DLL can be found on the the Project Page .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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