每台机器注册类别

本文关键字:注册 机器 | 更新日期: 2023-09-27 18:11:56

我为dll创建了一个WIX安装程序。

有一个class元素,它在注册表中注册dll的类。

<Class Id="{1AF5E2B9-CC02-368F-A879-1DF3F538D71A}"   
       Context="InprocServer32"
       Description="AdminAddins.MyClass"  
       ThreadingModel="both"
       ForeignServer="mscoree.dll">
   <ProgId Id="AdminAddins.MyClass" Description="AdminAddins.MyClass" />
</Class>  
<RegistryValue Root="HKLM" Key="SOFTWARE'Classes'CLSID'{1AF5E2B9-CC02-368F-A879-1DF3F538D71A}  
'Implemented Categories'{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}"   
Value="" Type="string" Action="write" />

然而,它总是注册在HKEY_CURRENT_USER下。

是否有一种方法可以显式地引用要在HKEY_LOCAL_MACHINE下注册的类?

每台机器注册类别

如果您没有设置ALLUSERS属性,则默认为每个用户,因此已安装的产品将仅为安装用户工作。如果它是一台单用户机器,那么这很好,如果应用程序工作,那么也许你不需要担心。每个用户安装只为该用户创建COM注册,而不是为可能登录的每个人创建COM注册。

如果您希望应用程序对登录系统的所有潜在用户可用,那么强制ALLUSERS为1,并且每台机器注册将在HKLM中进行,假设安装用户具有在那里创建条目的特权。

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