WIX обнаруживает .net 4.5 не находит набор PropertyRef NETFRAMEWORK45?

Я поместил это как комментарий на

Как проверить предварительные запросы .NET framework 4.5 в WiX

Но я думаю, мне нужно было задать это как отдельный вопрос. Я не получаю установку, чтобы обнаружить, что .NET 4.5 установлен. У меня установлен .NET 4.5. Ссылался на инструкцию. Но даже с установленной версией 4.5 я все равно получаю всплывающее сообщение о состоянии. Я следовал инструкциям по адресу:

http://wixtoolset.org/documentation/manual/v3/customactions/wixnetfxextension.html

http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/check_for_dotnet.html

Я использую последнюю версию wix 3.8, и даже если я следую указаниям, .NET 4.5 не распознается.

1.) С обновлением wxs с тегом wix верхнего уровня

xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"

2.) Добавьте тег propertyRef (я полагал, он попал в раздел продукта - может быть ошибка)

 <WIX>
   <PRODUCT>

     <PropertyRef Id="NETFRAMEWORK45"/>

3.) добавьте блок условия, который, как я полагал, находится на том же уровне, что и PropertyRef, в раздел продукта.

<Condition Message="This application requires .NET Framework 4.5. Please install the .NET Framework then run this installer again.">
    <![CDATA[Installed OR NETFRAMEWORK45]]>
</Condition>

4.) Использую свечу и свет в командной строке из bat файла

echo running the packaging step: wix candle DEV %VERSION%

call "candle" myproject.wxs -ext WiXNetFxExtension -ext WixUtilExtension -I.\Includes\Dev -dVersion="%VERSION%" -dShortVersion="%SHORTVERSION%" -dBuildTime="%BuildTime%" > dev1.log

echo running the packaging step: wix light DEV

call "light" -sice:ICE50 -sice:ICE61 -sice:ICE64 -ext WiXNetFxExtension -ext WixUtilExtension -o myproject.msi myproject.wixobj > dev2.log

Ни один журнал не показывает никаких проблем

dev1.log:

Компилятор набора инструментов Windows Installer версии 3.8.1128.0 Авторские права (c) Outercurve Foundation. Все права защищены.

myproject.wxs

В dev2.log есть некоторые предупреждения, но не относящиеся к делу:

Установщик Windows Installer XML Toolset Linker версии 3.8.1128.0 Авторские права (c) Outercurve Foundation. Все права защищены.

C: \ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs (251): ошибка LGHT0204: ICE38: компонент NonAdvertisedShortcut устанавливается в профиль пользователя. Он должен использовать ключ реестра в HKCU в качестве пути ключа, а не файл. C: \ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs (259): ошибка LGHT0204: ICE38: компонент NonAdvertisedShortcut2 устанавливается в профиль пользователя. Он должен использовать ключ реестра в HKCU в качестве пути ключа, а не файл. C: \ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs (357): предупреждение LGHT1076: ICE40: REINSTALLMODE определено в таблице свойств. Это может вызвать затруднения. C: \ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs (251): ошибка LGHT0204: ICE43: компонент NonAdvertisedShortcut содержит не рекламируемые ярлыки. В качестве пути ключа следует использовать ключ реестра HKCU, а не файл. C: \ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs (259): ошибка LGHT0204: ICE43: Компонент NonAdvertisedShortcut2 имеет не рекламируемые ярлыки. В качестве пути ключа следует использовать ключ реестра HKCU, а не файл. C: \ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs (30): предупреждение LGHT1076: ICE48: каталог «DRIVE.C» жестко закодирован в таблице свойств на локальном диске. C: \ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs (254): предупреждение LGHT1076: ICE90: ярлык «ScKey001» имеет каталог, который является общедоступным свойством (ВСЕ ЗАГЛАВНЫМИ буквами) и находится в каталоге профиля пользователя. Это приводит к проблеме, если значение свойства ALLUSERS изменяется в последовательности пользовательского интерфейса. C: \ SVN \ myproject_Trunk \ client \ Build \ wix \ myproject.wxs (260): предупреждение LGHT1076: ICE90: ярлык «ScKey002» имеет каталог, который является общедоступным свойством (ВСЕ ЗАГЛАВНЫМИ буквами) и находится в каталоге профиля пользователя. Это приводит к проблеме, если значение свойства ALLUSERS изменяется в последовательности пользовательского интерфейса.

Я запустил light с параметром -v, а также удалил параметры ICE.

Кажется, расширение не упаковано в мой MSI.

запуск msiexec для получения подробного журнала тоже ничего не показывает.

Я чувствую, что где-то совершил простую ошибку.

В реестре Software \ Microsoft \ NET Framework Setup \ NDP \ v4 \ Full есть соответствующие значения версии и выпуска.


person Ben Butzer    schedule 17.04.2014    source источник


Ответы (1)


Отвечая на свой вопрос после проработки

Изначально этот проект был создан на основе MSIbuild, а для сборки wxs использовалась утилита Wix dark. Он включает настраиваемые диалоговые окна и последовательность установки.

Удалив пользовательскую последовательность установки и диалоговые теги, а затем добавив -ext WixUIExtension, я смог успешно увидеть правильное сообщение на компьютерах с .NET 4.5 и ПК, на которых еще не установлен .NET 4.5.

person Ben Butzer    schedule 24.04.2014