为用户和管理员创建安装程序

时间:2014-06-26 10:26:41

标签: c# wix installer wix3.5

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

我想制作一个允许简单用户安装程序的安装程序(每个用户)以及管理员(每台机器)。

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

如果他选择"每个用户"选项,注册表项是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>  

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

1 个答案:

答案 0 :(得分:0)

在该特定注册表案例中,您使用HKMU注册表项,它会为您切换。在更一般的情况下,您可能需要遵循这些指南,具体取决于您的安装中的其他内容:

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