EldoS | Feel safer!

Software components for data protection, secure storage and transfer

What is the proper installation procedure

Posted: 02/02/2012 06:23:50
by Martin Hronsky (Standard support level)
Joined: 02/02/2012
Posts: 2

Dear All,

could you, please, help me with making proper installation procedure?

What I have now:
1. I have standard setup program created using VS 2008 SP1 (setup.exe and MSI package).
2. I use CallbackFileSystem.Install during a custom Install action.
3. I inform a user about needed restart in Commit action since MSI does not notify automatically.

Problems that I have:
1. When run the same install twice, MSI offers a repair, but CallbackFileSystem.Install fails with "Cannot create file when that file already exists".
2. When I create new install of higher version of application to simulate upgrade of the application, VS installer by default does only install, not uninstall, so the error is the same as in first case.
3. When I create a new install to simulate install of different version of the application to overcome problem nr. 2, VS installer by default makes uninstall and then install. Instalation fails, with message that "driver is scheduled for removal" (or something like that), because no restart is made between install and uninstall.
Parameters for the CallbackFileSystem.Install are always the same.

What are the proper steps that has to be done before calling CallbackFileSystem.Install?

Should I ask CBFS about version installed and call install only if it is higher?

I presume problem nr. 3 cannot be resolved on CBFS side, proper setup is to do MSI in the way that is does only the update.

Thank you for your help.

Best regards

Martin Hronsky
Posted: 02/02/2012 06:42:42
by Eugene Mayevski (Team)

If you are calling your code from MSI (instead of using Installer DLL directly), then you can check the version of the installed driver and install only the updated version.

And if Uninstall function says that you must reboot, then you *must* reboot before installing, no matter what MSI thinks about this. MSI just was not designed with drivers in mind.

In general I'd recommend using something more flexible than MSI. There exist several MSI-compatible script-based installation solutions on the market.

Sincerely yours
Eugene Mayevski
Posted: 02/02/2012 08:14:27
by Martin Hronsky (Standard support level)
Joined: 02/02/2012
Posts: 2

Dear Mr. Mayevski,

thank you for your answer, it is clear to me that if reboot is required, it is not important what MSI "thinks".

After more investigation it turned out that CallbackFileSystem.Install works correctly, problem actually makes CallbackFileSystem.InstallIcon. It raises an exception. Problem can be reproduced also with mapper example, just add InstallIcon call and press install button twice. Driver installation has no problem, icon instalation fails.

It looks like I will add an uninstall icon statement there in try/catch block to remove old icon, if any and just for sure that new icon can be installed. And MSI installer will then work in all modes.

Thank you for your help.

Best regards

Martin Hronsky.
Posted: 02/02/2012 08:42:01
by Eugene Mayevski (Team)

I've moved your last message to the helpdesk so that we could have a developer assigned to it. He will look at the issue next week as we have several other issues to check now.

Sincerely yours
Eugene Mayevski
Posted: 01/15/2015 15:30:31
by Fred Cantley (Basic support level)
Joined: 01/15/2015
Posts: 1

Hello, I was wondering if you had a posting of the final answer on this issue from the helpdesk. I know it has been 2 years since this discussion, but we are having similar problems with creating a quick, silent, callable msi installer to be run on multiple machines. Granted, I think we might finally start looking into other methods than an msi. Still, if there was a solution for this from the helpdesk, I would appreciate being able see it, or if it includes proprietary code, then just a list of steps to put into the msi creator.

Fred Cantley
Posted: 01/16/2015 01:01:33
by Eugene Mayevski (Team)

There was a problem with InstallIcon method, but it was fixed long time ago. As for the driver installation, my above answers apply.

On the CBFS side the Install() method of the CallbackFileSystem class or Install() function of the installer DLL are the only ways to install the driver and helper DLLs, and how you call those method or function is up to you.

Callback file System now includes a WiX sample script in Samples folder aimed to simplify installation.

Sincerely yours
Eugene Mayevski



Topic viewed 4345 times

Number of guests: 1, registered members: 0, in total hidden: 0


Back to top

As of July 15, 2016 EldoS business operates as a division of /n software, inc. For more information, please read the announcement.

Got it!