2014-10-24 5 views
0

Я пытаюсь изменить существующий сценарий Wix, чтобы проверить, что .NET 4.0, а не .NET 2.0, установлен перед продолжением. Это в настоящее время осуществляется с помощью пользовательских действий в файле WXS:Проверьте .NET 4.0 с помощью Wix

<InstallUISequence> 
    <Custom Action="VSDCA_VsdLaunchConditions" Before="ValidateProductID">NOT Installed</Custom> 
</InstallUISequence> 

Я не могу найти настройку, чтобы изменить таким образом, что он проверяет .NET 4.0, а не 2.0. Кажется, он жестко закодирован, возможно, он связан с версией Wix или установщика Windows? В настоящее время мы используем Wix 3.0. Если на компьютере установлен только .NET 4.0, то в журнале установщика появляется следующая ошибка:

Начало действия 15:53:36: VSDCA_VsdLaunchConditions. Информация 2898. Для текстового стиля VSI_MS_Sans_Serif13.0_0_0 система создала шрифт «MS Sans Serif», в наборе 0 символов, высотой 13 пикселей. DEBUG: ошибка 2835: элемент управления ErrorIcon не найден в диалоговом окне ErrorDialog Установщик столкнулся с непредвиденной ошибкой при установке этого пакета. Это может указывать на проблему с этим пакетом. Код ошибки: 2835. Аргументы: ErrorIcon, ErrorDialog, Для этой установки требуется версия .NET Framework 4.0 Действие завершено 15:53:39: VSDCA_VsdLaunchConditions. Возвращаемое значение 3. Действие завершено 15:53:39: УСТАНОВКА. Возвращаемое значение 3.

Если установлен .NET 2.0, он продолжит установку.

+0

Вы явно используете WiX v3.0 или используете на самом деле 3.x? Если вы используете <3.5, вы не сможете использовать свойства 'WixNetfxExtension', которые позволяют вам проверять .NET 4.0. –

+0

. Я пытаюсь выяснить, почему/как VSDCA_VsdLaunchConditions проверяет .NET 2.0. Я не могу найти какую-либо конфигурацию для ее управления. –

+1

[Посмотрите в документации] (http://wixtoolset.org/documentation/manual/v3/howtos/redistributables_and_install_checks/check_for_dotnet.html), и здесь у вас есть [свойства] (http://wixtoolset.org/documentation/manual/v3 /customactions/wixnetfxextension.html). – Buzka91

ответ

0

Я с тех пор обнаружил, что проект установки был изначально создан в VS2005 и преобразовано в проект Wix, используя темные и т.д. Это извлекает файл с именем MSVBDPCA.dll, который проверяет .NET 2.0 с помощью <CustomAction Id="DIRCA_CheckFX" BinaryKey="MSVBDPCADLL" DllEntry="CheckFX" /> действие. Создание нового проекта настройки в VS2010, а затем преобразование в Wix создает новую MSVBDPCA.dll, которая проверяет .NET 4.0.

1

Если DotNet 4.0 установлен там будет ключ реестра в HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework \ v4

Вы можете проверить этот раздел реестра и всплывающее сообщение в WiX.

Вы можете использовать нижеследующий код, чтобы сделать это.

<Property Id="DOTNET40"> 
    <RegistrySearch Id="NetFramework40" 
        Root="HKLM" 
        Key="Software\Microsoft\NET Framework Setup\NDP\v4" 
      Name="Install" 
        Type="raw" /> 
</Property> 


<Condition Message="Please install the .NET Framework 4.0 and run this installer again."> 
    <![CDATA[Installed OR DOTNET40]]> 
</Condition>