为用户和管理员制作安装程序

本文关键字:安装 程序 管理员 用户 | 更新日期: 2023-09-27 18:10:32

我使用WIX 3.5创建DLL的MSI安装程序。

我想做一个安装程序,允许一个简单的用户安装程序(每个用户),也管理员(每台机器)。

我必须定义的注册表项根据用户偏好而不同:

如果他选择"per user"选项,注册表项是HKEY_CURRENT_USER,
相反,如果他选择"每台机器"选项,注册表项是HKEY_LOCAL_MACHINE。

在每台机器(HKLM)的情况下,注册表项应该如何在代码中定义:

<Component Id="AdminAddinsRegEntries" Guid="8777A7AB-B147-4850-9F25-65011306E9C6" >
  <RegistryKey Root="HKLM" Key="Software'Sparx Systems'EAAddins'AdminAddins" Action="createAndRemoveOnUninstall">
     <RegistryValue Type="string" Value="AdminAddins.MyClass" />
  </RegistryKey>
</Component>  

在每用户(HKCU)的情况下,注册表项应该如何在代码中定义:

<Component Id="AdminAddinsRegEntries" Guid="8777A7AB-B147-4850-9F25-65011306E9C6" >
  <RegistryKey Root="HKCU" Key="Software'Sparx Systems'EAAddins'AdminAddins" Action="createAndRemoveOnUninstall">
     <RegistryValue Type="string" Value="AdminAddins.MyClass" />
  </RegistryKey>
</Component>  

如何添加条件以避免两个不同的安装程序?

为用户和管理员制作安装程序

在那个特定的注册表案例中,你使用HKMU注册表项,它会为你做那个切换。在更一般的情况下,您可能需要遵循以下指导方针,具体取决于安装中的其他内容:

http://msdn.microsoft.com/en-us/library/windows/desktop/dd408068 (v = vs.85) . aspx