处理WIX警告的正确方法:LGHT1076:ICE48

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了处理WIX警告的正确方法:LGHT1076:ICE48相关的知识,希望对你有一定的参考价值。

我想将我的wix安装中的一个属性默认设置为一个硬编码目录。是否有一种“正确”的方式来编码默认值(请注意,这是一个内部项目,而不是分发给公众的东西),所以我没有得到以下警告:

LGHT1076: ICE48 Directory 'FOO' appears to be hardcoded in the property table to a local drive.

wix文件看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Product Id="22E1F223-E3AD-45F8-A394-1289AAAA64C8"
           Name="MyService"
           Language="1033" Version="1.0.0.0"
           UpgradeCode="140F5A44-58DA-4364-876B-9D9484C04CD9">
    <Package InstallerVersion="200" Compressed="yes" />

    <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />

    <Property Id="FOO" Value="C:\MyRootDirectory\" />

对此有何想法?

答案

[如果您想遵循最佳实践(由于您提到它是“内部”安装程序,因此我不认为您在这里这样做),则永远不要使用硬编码路径。选择WindowsVolume之类的属性,然后将WindowsVolume恰好不是WindowsVolume的情况设计为灵活的应用程序

如果您真的不在乎,可以在安装开始时使用自定义操作将属性设置为所需的属性。在UI和“执行序列”中提前安排的简单的Type 51 CA(设置属性)将很好地解决这一问题。这样,在运行验证时,该属性没有令人讨厌的值,但是在安装开始时立即获得了该值。

另一答案

如果您只想将目录树中的某个目录作为属性引用,那么它本身就是受支持的。引用MSDN,“ C:

另一答案

就我而言,要摆脱此警告,我选择从属性中删除默认值。例如,此(没有ICE48警告):

另一答案

您可以结合使用<Property Id="VS2010INSTALLDIR" Value="0"> <RegistrySearch Id="VS2010_InstallDir" Root="HKLM" Key="SOFTWARE\Microsoft\VisualStudio\10.0" Name="InstallDir" Type="raw" /> </Property> <SetProperty>元素来解决此问题:

以上是关于处理WIX警告的正确方法:LGHT1076:ICE48的主要内容,如果未能解决你的问题,请参考以下文章

错误 LGHT0204:ICE17:位图:控制的“WixUI_Bmp_Dialog”:对话框的“位图”:二进制表中找不到“WelcomeDlg”

WiX 错误:lght0094 未解决对符号的引用

拆分 WIX 文件

WIX - 如何解决错误 LGHT0094:未解决的符号引用

Wix (candle.exe) 中的符号错误 LGHT0311,windows-1252

ice03 每晚构建错误 - wix/sln