我使用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>
如何添加条件以避免两个不同的安装程序?
答案 0 :(得分:0)
在该特定注册表案例中,您使用HKMU注册表项,它会为您切换。在更一般的情况下,您可能需要遵循这些指南,具体取决于您的安装中的其他内容:
http://msdn.microsoft.com/en-us/library/windows/desktop/dd408068(v=vs.85).aspx