每台机器的安装程序与每个用户一样工作
本文关键字:工作 一样 用户 机器 安装 程序 | 更新日期: 2023-09-27 18:10:50
我为使用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>
首先,将以下属性添加到您的package元素中:
<Package InstallScope="perMachine" InstallPrivileges="elevated" ... />
perMachine
设置此值以声明该包为每台机器安装,并且需要提升特权才能安装。设置ALLUSERS属性为1。
设置此值以声明该包需要提升权限才能安装。<一口>一口>
其次,可以将RegistryKey
的Root
值改为HKMU
:
<RegistryKey Root="HKMU" ... />
以便根据安装类型将注册表项放置在当前用户或本地机器单元中。或者,如果您只在每台机器安装时使用它,则可以保持原样。