每台机器的安装程序按用户工作

时间:2014-06-30 08:11:30

标签: c# wix installer 32-bit wix3.5

我创建了一台'每台机器'使用HKLM注册表添加插件的安装程序 我在32位机器上安装了加载项。安装它的用户具有管理员权限。

注册表项添加在HKLM\SOFTWARE\Sparx Systems\EAAddins\MyAddin下 - 适用于所有用户,但该插件仅适用于用户如何安装“每台计算机”安装程序。

对于所有其他用户,该程序不可用。

有什么想法吗?

编辑:

这是安装程序中的包定义:

    <Package Description="#Description"
             Comments="Comments"
             InstallerVersion="200"
             Compressed="yes"/>

这是注册表定义:

<Component Id="AdminAddinsRegEntries" Guid="A8B685BF-E4B3-4D8B-A8B1-BAB845812233">
    <RegistryKey Root="HKLM" Key="Software\Sparx Systems\EAAddins\AdminAddins" Action="createAndRemoveOnUninstall">
       <RegistryValue Type="string" Value="AdminAddins.MyClass" />
    </RegistryKey>
</Component>

1 个答案:

答案 0 :(得分:0)

首先,将以下属性添加到包元素中:

<Package InstallScope="perMachine" InstallPrivileges="elevated" ... />
  

<强> perMachine
  设置此值以声明程序包是每台计算机的安装,并且需要提升的权限才能安装。将ALLUSERS属性设置为1   的升高的
  设置此值以声明程序包需要提升的安装权限。    Source

其次,您可以将Root的{​​{1}}值更改为RegistryKey

HKMU

因此,注册表项将放置在当前用户或本地计算机配置单元中,具体取决于安装类型。或者,您可以按原样保留,如果您仅将其用于每台机器安装。