Как я могу определить .NET 3.5 в WiX?
Я пытаюсь определить, какая версия .NET установлена с помощью WiX. Я пробовал:
<Condition Message='This setup requires the .NET Framework 3.5 or higher.'>
<![CDATA[MsiNetAssemblySupport >= "3.5.0.0"]]>
</Condition>
Но это не сработает, потому что свойство MsiNetAssemblySupport проверяет версию fusion.dll
, которая не была обновлена с версии 2.0 в .NET 3.0 или 3.5.
Можно ли проверить наличие библиотек .NET в системном каталоге? Как мне это сделать с помощью WiX? Или есть ли способ сделать это с помощью реестра?
(Я понимаю, что есть список адресов электронной почты пользователей WiX, но это Oughts - мне не нравится технология 1980-х годов, мне нравятся вещи, которые я могу легко найти.)
Ответы
Ответ 1
Visual Studio → Проект WiX → Добавить ссылку → WixNetFxExtension.dll, а затем:
<PropertyRef Id="NETFRAMEWORK35" />
<Condition Message="This setup requires the .NET Framework 3.5 to be installed.">
Installed OR NETFRAMEWORK35
</Condition>
Полная информация, включая все . Свойства NET-версии доступный в расширении. Также рассмотрите, должно ли сообщение условия localized.
Ответ 2
Ответ кажется нет. Вы не можете (надежно) проверить, установлена ли версия .NET Framework X или выше. Вы можете проверить, установлена ли только определенная версия .NET.
Теперь, когда выпущен .NET 4.0, это раздражает, что вам нужно установить .NET 3.5, даже если .NET 4.0 уже установлен.
Я надеюсь, что разработчики WiX найдут решение этой проблемы.