Я поместил это как комментарий на
Как проверить предварительные запросы .NET framework 4.5 в WiX
Но я думаю, мне нужно было задать это как отдельный вопрос. Я не получаю установку, чтобы обнаружить, что .NET 4.5 установлен. У меня установлен .NET 4.5. Ссылался на инструкцию. Но даже с установленной версией 4.5 я все равно получаю всплывающее сообщение о состоянии. Я следовал инструкциям по адресу:
http://wixtoolset.org/documentation/manual/v3/customactions/wixnetfxextension.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 есть соответствующие значения версии и выпуска.