Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Binary Table DLL not found on NT4 target system


5 replies to this topic

Cronos

Cronos
  • Members
  • 4 posts

Posted 14 January 2004 - 13:21

I have a custom action which calls into an MFC DLL I have created, and I have specified the Binary Table as the lcoation for the dll. This custom action is called when the 'Next' button is clicked on the InstallWelcome dialog.
This all works OK on Windows 2000 but on NT4 systems I get a dialog saying that teh custom action can't fine the DLL.
It typically seems to expect the DLL to be in 'C:\TEMP' which is the folder given in the 'TEMP' environment variable. It looks like the install is using the 'C:\TEMP' folder for other temporary files. I have done a search on the whole hard-drive for the DLL and it is nowhere to be found.
In desperation I have added another custom action called just before this one which uses installscript to explicitly stream the dll to the temp folder. This works and the DLL is can be seen in the folder, however it seems that when the problem custom action executes the dll disappears!
I have also tried cahnging the CA so that the dll is in the 'search path' on the target system and modifying the file streaming CA to stream the dll to a number of folders on the target system (widows dir, system dir). Agian the file streaming works but the CA still reports that it can't find the dll.

Any ideas?

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 14 January 2004 - 18:55

I don't have a solution to your particular problem, but what I can say is that I add dll's used during installation to "Support Files" and this works on all systems I have tried.
Regards
-Stein Åsmul

Zweitze

Zweitze
  • Full Members
  • 522 posts

Posted 15 January 2004 - 09:54

Check the dependencies of your DLL, eg. the MFC support files may not be present on the target system. Remove the dependencies that are not present in minimal system configurations.

You can check the depencies using Depends.exe, in Windows Resource kit. Microsoft has a valuable website that allows you to look up many of their DLLs:
http://support.micro...sp&SD=MSDN&FR=0

Balachandar

Balachandar
  • Members
  • 23 posts

Posted 15 January 2004 - 11:12

Copying a file in Support files will install it in the TEMP folder. As said by Glytzhkof. This should solve it.

Cronos

Cronos
  • Members
  • 4 posts

Posted 21 January 2004 - 17:54

The issue is (as Zweitze suggested) to do with dependancies.
Once I had ensured the dlls had no dependancies that were unavailable on NT4 it was OK.

Glytzhkof

Glytzhkof
  • Moderators
  • 1,447 posts

Posted 21 January 2004 - 22:13

Cronos: great that you got your problem solved. Just for the record: if you can't eliminate the dependencies you can ensure that the files your dll depends on are installed to the same folder as your dll before you call the function. With the dependency files in the same folder as your dll things should work correctly since your dll can "find" all the files it needs. Adding all the files to "Support files" should ensure that they end up in the same folder during installation.
Regards
-Stein Åsmul