2010-07-06 35 views
2

我想在我的WiX安装到默认情况下,proptery的硬编码目录。是否有一个“正确”的方式来进行编码的默认值(注意,这是一个内部项目,不是向市民派发),所以我没有得到以下警告:来处理维克斯警告正确方法ICE48

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

的威克斯文件看起来像这个:

<?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\" /> 

对此有何想法?

+0

我有同样的问题,我们只是住在一起的警告。在我们的场景中,将目录硬编码到软件包中是有意义的。 – Russell 2010-07-07 05:43:44

回答

2

如果要遵循最佳做法(我不认为既然你提到它的“内部”安装程序,你在这里做),你应该永远不会硬代码路径。选择一个属性像WindowsVolume和设计应用程序要灵活,如果WindowsVolume恰好不C:

如果你真的不关心这个,你可以使用自定义操作的属性设置为你想要的东西很安装开始。在UI和执行序列中早期预定的简单Type 51 CA(Set Property)将很好地实现这一技巧。通过这种方式,当验证运行时,该属性不具有违规值,但在安装开始时立即获取该值。

0

在我的情况下,要摆脱这个警告我选择了从属性删除默认值。 例如,这(无ICE48警告):

<Property Id="VS2010INSTALLDIR"> 
    <RegistrySearch Id="VS2010_InstallDir" Root="HKLM" Key="SOFTWARE\Microsoft\VisualStudio\10.0" Name="InstallDir" Type="raw" /> 
</Property> 

,而不是这个(ICE48警告):

<Property Id="VS2010INSTALLDIR" Value="0"> 
    <RegistrySearch Id="VS2010_InstallDir" Root="HKLM" Key="SOFTWARE\Microsoft\VisualStudio\10.0" Name="InstallDir" Type="raw" /> 
</Property>