2010-12-15 47 views
10

我正在使用wix 3.5创建一个带有“perUser”安装范围的windows安装程序。 wxs file is here,由此产生MSI file is herewix:peruser安装程序的ICE57和ICE91警告

我从light.exe链接器获得以下奇怪的警告。我不确定是否应该压制它们,或者是否有更好的方法来解决这个问题。

ICE57

d:\汞柱\ downmarker \设置\ product.wxs(34) :警告LGHT1076:ICE57:组件 'component.downmarker.exe' 具有两个 每个用户和每台机器的数据与一个 HKCU注册表键路径。

此警告没有意义对我来说,因为安装工作没有管理权限罚款 - 这AFAIK证明,安装程序不会写任何“每台机器的数据”的警告声明。

ICE91

d:\汞柱\ downmarker \设置\ product.wxs(37) :警告LGHT1076:ICE91:文件 'downmarker.exe' 将被安装到 的每用户目录 'DownMarkerFolder'根据ALLUSERS值不会变化 。即使每台计算机的安装期望为 ,此文件 也不会复制到每个用户的配置文件 。

此警告对我来说没有意义,因为我明确地将安装程序标记为具有“perUser”安装范围。

+0

我同意您。 – 2010-12-15 23:40:26

回答

9

显示ICE57是因为组件“component.downmarker.exe”包含来自HKEY_CURRENT_USER和HKEY_CLASSES_ROOT的注册表项。 HKEY_CLASSES_ROOT是每台机器,因此该组件具有每个用户和每台机器的数据。

我注意到你正在使用HKEY_CLASSES_ROOT作为文件关联。您可以使用“HKEY_CURRENT_USER \ SOFTWARE \ Classes”来获取每个用户的文件关联。

ICE91是无害的,每用户安装被忽略: http://msdn.microsoft.com/en-us/library/aa369053(VS.85).aspx

+1

+1感谢ICE91链接,这让人放心。对于ICE57:'HKEY_CLASSES_ROOT'已经映射到每个用户上下文中的'HKEY_CURRENT_USER \ SOFTWARE \ Classes',它并不总是每台机器。否则,我将无法在没有管理员权限的情况下运行我的安装程序。另外,如果我遵循你的建议而不是明确写入'HKCU \ Software \ Classes',那么我仍然会得到警告,可能是因为'ProgId'元素隐式使用'HKCR'。 – 2010-12-16 10:09:42