4

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.

Dan Aquinas
  • 321
  • 2
  • 4
  • 10
  • Please add the answer to the question and accept it. – Robert Love May 21 '11 at 21:11
  • I think Robert meant you should add your answer *as an answer* to this question, not actually adding the answer to the question text. That way we could vote on it and you can accept it. – Oliver Giesen May 24 '11 at 07:29
  • I tried to do what you both suggested, but since I was a new user, I was prevented from doing so for an 8 hour lock-out period. So not wanting to waste others time possibly searching for an answer that did not exist, I did the next best thing and edit the "Question" area. I know, not the correct procedure, but the only avenue open to me at the time. I will follow your suggestions and provide my answer myself. – Dan Aquinas May 31 '11 at 14:19
  • Do you think I should, now that I have "Answered" my own question, remove the "answer" from the "Question", or would that just confuse people all the more? – Dan Aquinas May 31 '11 at 14:26
  • Yes, removing the answer from the question text would be the way to go. – Oliver Giesen Jun 06 '11 at 11:24

2 Answers2

3

I found the issue myself after a bit of searching and experimentation. Evidently I had at one point (i.e., 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".

Dan Aquinas
  • 321
  • 2
  • 4
  • 10
2

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.

Robert Love
  • 12,447
  • 2
  • 48
  • 80