cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
asc321
Level 3

How do I ensure .dlls are available in maint mode?

I have a DLL I am using with my install MSI project. How do I ensure the DLL is available when doing maintenance and repair?

Thanks,
Labels (1)
0 Kudos
(6) Replies
RobertDickau
Flexera Alumni

In a custom action? Does including it in the Binary table work?
0 Kudos
asc321
Level 3

The install program creates two separate sub-folders in the system temp folder. One of the folders contains the .dll file I need along with setup.exe and other support files, the other contains the .msi file and what I suspect are supporting files for it (3 .ini files and ISSetup.dll). When I run in maint mode, it does not find my .dll - so I assume it is running the .msi file.

Is there some way to get my dll and other support files into the same folder as the .msi?

I think I wasn't clear on my previous post - I have an "InstallScript MSI" project.

Thanks,
0 Kudos
asc321
Level 3

By the way, I am entering maint mode by re-running the setup.exe generated for a single_exe_image project. Should I be entering via "Add/Remove Programs" in the control panel? Does that make a difference?

Also, I don't know if this is related, but when I choose "Repair" rather than modify, the repair process gets most of the way through - it has deleted the existing files - but them puts up a message box saying it cannot find the .msi file. It gives a complete path for the file it is looking for, and when I use Windows Explorer to look for the .msi, it is exactly where the message says it cannot be found.

I have a bunch of screen shots for this that I have attached.

Thanks,
0 Kudos
RobertDickau
Flexera Alumni

How are you using the DLL? If it's a DLL custom action, then the Binary table might help. If you're calling it from script (using UseDLL/UnUseDLL or DotNetCoCreateObject or similar), perhaps post the script you're using...

For the second issue, to support maintenance mode with a single-EXE installer, you might use a Web media type and specify to cache the files somewhere. Otherwise, the MSI is extracted to a temp directory, Windows Installer remembers that temporary directory, and later maintenance operations look for that directory when it's long gone.
0 Kudos
asc321
Level 3

First, I am using the DLL with the UseDLL and UnUseDLL calls from within InstallScript. The calls to the DLL occur during the installation and maintenance portions of the install. The install portion works great - it is only when I want to use it during modify that I run into problems.

Oops, looks like my bad on this. It is finding the DLL, just not the function I am calling. I will deal with this.

On the second issue, I don't really understand your response. What do you mean by "you might use a Web media type and specify to cache the files somewhere"? Also, the folder in question still exists when I get the error message. I can open an explorer while the message is up and find the file - the folder stays there the entire time the installation (in maint mode) is running.

Anyway, how do I specify a web media type?

Thanks,
0 Kudos
RobertDickau
Flexera Alumni

You can specify a Web media type in the Release Wizard.
0 Kudos