Модули WiX и Merge — включать или нет файлы политики?

Я включаю модули слияния VS 2005 в MSI. Код готов, MSI собирается.

<Fragment>
  <DirectoryRef Id="TARGETDIR">

    <!-- 
    WiX docs say "There is generally no need to include the policy MSMs as part of the installation.", but, the former Installshield 
    project did include it, so, including here now. Remove it if it's actually not required. 
    http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/install_vcredist.html
    -->
    <Merge Id="VCRedist2005_32" SourceFile="$(var.RESOURCES)\MergeModules\VS2005\Microsoft_VC80_CRT_x86.msm" DiskId="1" Language="0"/>
    <Merge Id="VCRedist2005_64" SourceFile="$(var.RESOURCES)\MergeModules\VS2005\Microsoft_VC80_CRT_x86_x64.msm" DiskId="1" Language="0"/>
    <!--
    <Merge Id="VCRedistPolicy2005_32" SourceFile="$(var.RESOURCES)\MergeModules\VS2005\policy_8_0_Microsoft_VC80_CRT_x86.msm" DiskId="1" Language="0"/>
    <Merge Id="VCRedistPolicy2005_64" SourceFile="$(var.RESOURCES)\MergeModules\VS2005\policy_8_0_Microsoft_VC80_CRT_x86_x64.msm" DiskId="1" Language="0"/>
    -->

  </DirectoryRef>
</Fragment>

И в моем Product.wxs:

    <Feature ...>
        <ComponentRef Id="Client_Registry" />
        <?if $(var.Product) = xx ?>
            <MergeRef Id="VCRedist2005_32"/>
            <MergeRef Id="VCRedist2005_64"/>
            <!--
            <MergeRef Id="VCRedistPolicy2005_32"/>
            <MergeRef Id="VCRedistPolicy2005_64"/>
            -->
        <?endif?>
    </Feature>

Однако меня беспокоят два предупреждения:

1>light.exe(0,0): warning LGHT1076: ICE25: Possible dependency failure as we do not find CRT.Policy.63E949F6_03BC_5C40_FF1F_C8B3B9A1E18E@0 v in ModuleSignature table
1>light.exe(0,0): warning LGHT1076: ICE25: Possible dependency failure as we do not find CRT.Policy.4F6D20F0_CCE5_1492_FF1F_C8B3B9A1E18E@0 v in ModuleSignature table

Два сообщения, потому что я включаю как 32-битные, так и 64-битные модули слияния.

Я не добавлял файлы политик, потому что страница wix предлагает этого не делать. Страница блога MS также поддерживает это. Но есть такие страницы, как эта, где совет ЧТОБЫ включить их.

Итак, я не уверен, как поступить. Должны ли файлы политики быть включены или нет? И если нет, то почему?


person Jon    schedule 06.09.2016    source источник


Ответы (1)


Вместо этого я всегда предпочитал загружать среду выполнения vcredist. Держит мой MSI в чистоте и чистоте без проблем.

person Christopher Painter    schedule 06.09.2016
comment
Это можно было бы сделать (мы делаем это для продукта следующего поколения, который зависит от VS2015, в котором нет MSM)... но тогда мне пришлось бы (я понял, из того, что я читал и пытался понять) продублируйте графический интерфейс MSI, который уже предоставляет пользователю варианты установки - и работает - в новое приложение, которое мне придется написать самому. Похоже, огромные усилия (даже для получения одобрения) при очень небольшой окупаемости (установщик просто выглядел бы и действовал бы так же). Прямо сейчас мы игнорируем очевидное — что мы не можем изменить текущую установку (должны удалить и переустановить). Легче пойти по пути МСМ! - person Jon; 07.09.2016
comment
Вы можете создать загрузчик записи, который показывает основной пользовательский интерфейс MSI. Burn действительно хорош в цепочке и управлении, но когда вам нужен очень простой сценарий prereq и стандартного MSI, я считаю, что загрузчик InstallShield setup prereqs проще. - person Christopher Painter; 07.09.2016
comment
Это то, что мы вынуждены сделать для версии приложения, созданной для VS2015. Проблема в том, что мы не можем изменить установку. Запись ARP (для загрузчика) не предлагает параметры изменения и восстановления, поэтому нам нужно удалить и переустановить приложение, чтобы изменить параметры установки. Если я скрою запись ARP загрузчика (просто покажу запись MSI), то мы сможем изменить/восстановить, но удаление не удалит загрузчик из системы, что приведет к сбою последующей установки (пока вы правильно не удалите предыдущую версию). Опять же, проще и предпочтительнее пойти по пути МСМ! - person Jon; 09.09.2016