我有一个 Win32 应用程序,其中包括一个 EXE、一个 ActiveX 控件 (DLL) 和一个 COM 服务器 (EXE),我正在使用 Inno Setup 5 来构建我的安装程序。我们的许多客户使用受限的用户帐户,用户没有管理员权限,并且因为需要注册 COM 组件(写入 HKEY_CLASSES_ROOT),我的安装文件必须以提升的(管理员)权限运行。我认为这是不可避免的(遗憾的是,由于我有 EXE COM 服务器,我不能使用免注册 COM)。但是,我想创建一个可以作为受限用户运行的更新安装程序,并正在寻找一些建议。
我的想法如下:
- 初始设置(首次安装)将应用程序安装到 %ALLUSERSPROFILE%\Application Data\CompanyName\AppName 而不是 %PROGRAMFILES%。COM 组件正常注册(因为它们不存在)。
- 后续更新(使用不同的 Inno Setup 脚本)将简单地将新文件复制到 %ALLUSERSPROFILE%\Application Data\CompanyName\AppName。希望即使是受限制的用户也可以对该文件夹具有写入权限,并且由于 COM 组件已经注册,因此不需要管理员访问权限。
这意味着我的客户可以升级到最新最好的版本,而无需使用管理员帐户。这是可以接受的还是可能会咬我的后背?我很确定 Google Chrome 会做类似的事情,但由于它没有 COM 组件(据我所知),即使初始设置也可以作为受限用户使用。
确实非常欢迎遇到此问题的其他人提出任何建议。