I have a Win32 application that includes an EXE, an ActiveX control (DLL), and a COM server (EXE), and I use Inno Setup 5 to build my installer. Many of our clients use limited user accounts where the user does not have administrator rights, and since COM components require registration (which is recorded in HKEY_CLASSES_ROOT), my installation file must be run with elevated privileges (admin). I think this is inevitable (unfortunately, I cannot use COM without registering because I have a COM COM server). However, I would like to create an update installer that can be run as a limited user, and I'm looking for some tips.
I think the following:
- The initial installation (first-time installation) installs the application in% ALLUSERSPROFILE% \ Application Data \ CompanyName \ AppName instead of% PROGRAMFILES%. COM components are registered as usual (because they do not exist yet).
- Subsequent updates (using another Inno Setup script) will simply copy the new files to% ALLUSERSPROFILE% \ Application Data \ CompanyName \ AppName. We hope that even a limited user will have write access to this folder, and since COM components are already registered, administrator access is not required.
This would mean that my clients can upgrade to the latest and greatest version without the hassle of using an administrator account. Is that acceptable or can it bite me from behind? I'm sure Google Chrome does something similar, but since it does not have COM components (as far as I can tell), even the initial setup can be limited by the user.
Any advice from others encountering this issue would be greatly appreciated.
source
share