Подтвердить что ты не робот

Как я могу определить .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-х годов, мне нравятся вещи, которые я могу легко найти.)

4b9b3361

Ответ 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 найдут решение этой проблемы.