Как я могу определить .NET 3.5 в WiX? - PullRequest
20 голосов
/ 25 марта 2009

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

Ответы [ 2 ]

37 голосов
/ 25 марта 2009

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 , доступные в расширении. Также подумайте, должно ли сообщение о состоянии быть локализованным .

1 голос
/ 28 июня 2010

Ответ, кажется, нет. Вы не можете (надежным способом) проверить, установлена ​​ли .NET Framework версии X или выше. Вы можете только проверить, установлена ​​ли конкретная версия .NET. Теперь, когда выпущен .NET 4.0, досадно, что вам нужно установить .NET 3.5, даже если .NET 4.0 уже установлен.

Надеюсь, разработчики WiX найдут решение этой проблемы.

...