2010-07-06 3 views
2

Я хочу по умолчанию проталкивать мою установку wix в жесткокодированный каталог. Есть ли «правильный» способ кодирования значения по умолчанию (обратите внимание, что это внутренний проект, не то, что распространяется на публику), поэтому я не получаю следующее предупреждение:Правильный способ справиться с предупреждением WIX: LGHT1076: ICE48

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

Любые мысли об этом?

+0

У меня такая же проблема, мы просто живем с предупреждением. В нашем сценарии имеет смысл жестко задавать каталог в пакете. – Russell

ответ

2

Если вы хотите следовать лучшим практикам (я не думаю, что вы здесь, так как вы упоминаете, что это «внутренний» установщик), вы никогда не должны иметь жестких кодовых путей. Выберите свойство, как WindowsVolume и спроектировать приложение, чтобы быть гибким, если WindowsVolume случается не быть C:

Если вы действительно не заботятся об этом, вы можете использовать пользовательские действия, чтобы установить свойство, что вы хотите на самом начало установки. Простой тип 51 CA (Set Property), запланированный на раннем этапе как в пользовательском интерфейсе, так и в Execute Sequence, прекрасно справится с этим. Таким образом, свойство не имеет оскорбительного значения, когда выполняется проверка, но затем получает значение сразу в начале установки.

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> 
Смежные вопросы