代码之家  ›  专栏  ›  技术社区  ›  Scott Langham

如何修复WiX警告:组件“X”同时具有具有HKCU注册表键槽的每用户和每机器数据

wix
  •  11
  • Scott Langham  · 技术社区  · 15 年前

    我正在尝试维护一些Wix代码,并收到以下警告:

    warning LGHT1076 : ICE57: Component 'FILE_MY_ASSOCIATION' has both per-user and per-machine data with an HKCU Registry KeyPath.
    

    从以下代码:

    <Component Id="FILE_MY_ASSOCIATION" Guid="E1DF42A5-BD00-4a80-9BE5-B66A3EF0576E" Win64="$(var.Variables_Win64)">
      <RegistryKey Root="HKCU" Key="Software\MyComany\MyProduct">
        <RegistryValue Value="" Type="string" KeyPath="yes" />
      </RegistryKey>
      <ProgId Icon="FILE_MY_FILETYPE_ICON" Id="MY_FILE_EXTENSION" Description="My Product File" >
        <Extension Id="myext" Advertise="no" >
          <Verb Id="Open" Argument="&quot;%1&quot;" TargetFile="MYUI_EXE_FILE"/>
        </Extension>
      </ProgId>
    </Component>
    

    我很难弄清楚出了什么问题,或者这是不是一个警告,我真的需要担心。

    • 我需要担心并修正这个警告吗?目前的代码在某些情况下会导致问题吗?

    谢谢。

    2 回复  |  直到 15 年前
        1
  •  10
  •   heavyd    15 年前

    警告是说,您正在同一组件中同时写入特定于用户的数据和系统范围的数据。您的注册表项正在写入 HKCU 它将始终写入注册表中特定于用户的部分。 ProgId 另一方面,将注册表项写入 HKCR HKLM 香港中文大学 . 如果它真的写信给 港币 ICE warning 你知道。

        2
  •  1
  •   Stabledog Tom Ekberg    15 年前

    听起来编译器提醒您注意可能不是您想要的行为:如果仅为用户注册文件关联,则其他用户将看不到该关联。对于应用程序来说,这是一种不寻常的行为。因此,这取决于您的要求:您希望注册的应用程序为所有用户处理该类型的所有文档,还是仅为安装用户处理?

    推荐文章