Wix 注册表中已安装的条目是否应位于Microsoft文件夹中?
根据,向使用Wix创建的安装程序添加快捷方式时,需要添加注册表值,如下所示:Wix 注册表中已安装的条目是否应位于Microsoft文件夹中?,wix,windows-installer,Wix,Windows Installer,根据,向使用Wix创建的安装程序添加快捷方式时,需要添加注册表值,如下所示: <RegistryValue Root="HKCU" Key="Software\Microsoft\MyApplicationName" Name="installed" Type="integer" Value="1" KeyPath="yes"/> 该值真的应该在软件\Microsoft中吗?在Microsoft world的许多情况下,我看到供应商被用作范围,因此我想知道它是否真的应该是Sof
<RegistryValue Root="HKCU" Key="Software\Microsoft\MyApplicationName" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
该值真的应该在
软件\Microsoft
中吗?在Microsoft world的许多情况下,我看到供应商被用作范围,因此我想知道它是否真的应该是Software\MyVendorName\MyApplicationName
我肯定会按照其他人的指示写信到我自己的位置:
HKCU\Software\MyVendorName\MyApplicationName
HKLM\Software\MyVendorName\MyApplicationName
HKLM\SOFTWARE\Classes
和HKCU\SOFTWARE\Classes
。这些每台机器和每用户位置被合并以生成HKCR
(HKEY\u CLASSES\u ROOT
)。COM注册也可以被隔离,在这种情况下,您可以使用清单文件,这样就根本不涉及注册表。WiX具有特殊的COM相关元素,这些元素将通过标准MSI机制为您填充注册表-用于获取COM注册的heat.exe
工具将自动为您生成这些元素,并且您编译的MSI将保留COM注册信息(ProgId
,Class
,TypeLib
等)
更新:不要太复杂,但可以根据和属性的值为每台用户或每台计算机安装MSI。如果您已在MSI中填充了正确的COM表,则会相应地为每台计算机或每台用户注册COM服务器
还有一些情况下,如果您安装软件包,安装过程会在注册表中的其他位置进行更改。例如,当您安装驱动程序、插件、字体、COM+、COM互操作、文件扩展名,等等……您在ese案例通常应通过负责注册组件的API进行,在大多数情况下,您不应亲自查看注册表。如果您操作正确,许多此类注册都由MSI处理,或者是用于制作MSI文件的第三方工具中的内置结构。这可能是WiX早期的遗留问题是一个Microsoft项目。有关WiX的另一个优秀教程,请参阅。他们正在按您的方式放置密钥(
Software\MyVendorName\MyApplicationName
)你好,pupeno。我添加了一些对你来说可能很重要的细节。MSI的细节非常复杂,但我认为这个问题不会影响你(COM注册)。对于使事情复杂化(可能是不必要的),我深表歉意,但我添加了更多细节,以使答案更普遍地适用于其他人。谢谢。我怀疑它是否会被接受,因为Wix3不再处于积极开发中,但我发送了一个请求,以修改Wix关于此问题的文档: