Изменения WiX, необходимые для упрощения установки .NET 3.5 для компьютеров с Vista (и выше) - PullRequest
2 голосов
/ 09 марта 2009

Мы решили сделать решающий шаг и потребовать, чтобы наши пользователи установили .NET 3.5, прежде чем они смогут использовать наш плагин для медиацентра.

Я хочу убедиться, что процесс установки проходит максимально гладко и наш установщик остается маленьким.

Какие изменения необходимо внести в мой WiX-файл для поддержки следующих сценариев? Примеры кода будут высоко оценены.

  • У пользователя установлен .Net framework 3.0, интерактивная установка.

Желаемое поведение : пользователю предлагается окно с сообщением о том, что ему нужна новая версия платформы; если она это принимает, файл dotNetFx35setup.exe (2,7 МБ) загружается, а затем выполняется. Наконец установка продолжается.

  • У пользователя установлена ​​платформа .Net Framework 3.0, неинтерактивная установка.

Справочная информация : Чтобы упростить автоматическое обновление из медиацентра, мы можем выполнить «msiexec.exe / qb / i mediabrowser.msi», если пользователь решит обновить существующую версию.

Желаемое поведение : пользователю предлагается окно с сообщением о том, что ему нужна новая версия платформы; если она это принимает, файл dotNetFx35setup.exe (2,7 МБ) загружается, а затем выполняется. Наконец, установка продолжается беззвучно.

Существуют ли другие проекты с открытым исходным кодом, которые реализуют что-то подобное?

Смежный вопрос : Является ли .NET 3.5 разумной предпосылкой для плагина медиацентра?

Ответы [ 4 ]

2 голосов
/ 26 ноября 2009

dotNetInstaller поддерживает все это

2 голосов
/ 09 марта 2009

Я полагаю, что установка .NET входит в обязанности загрузчика setup.exe до запуска вашей MSI. WIX (пока) не имеет своего собственного способа генерирования загрузчика (или, если это так, он не описан в wix.chm). Вместо этого вы можете использовать задачу msbuild GenerateBootStrapper для создания файла setup.exe. Взгляните на тему " Как: установить .NET Framework с помощью загрузчика " в документации по wix. Чтобы установить .NET 3.5 SP1 путем загрузки, ваш файл msbuild должен выглядеть так:

<Project ToolsVersion="3.5"
   xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <BootstrapperFile Include="Microsoft.Windows.Installer.3.1" >
           <ProductName>Windows Installer 3.1</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1" >
           <ProductName>Microsoft DotNet Framework 3.5 SP1</ProductName>
        </BootstrapperFile>
    </ItemGroup>

    <Target Name="SetupExe">
        <GenerateBootstrapper
            ApplicationFile="myproduct.msi"
            ApplicationName="myproduct"
            BootstrapperItems="@(BootstrapperFile)"
            Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\"
            OutputPath="path/to/put/setup/"
            Culture="en"/>
    </Target>

</Project>

Если вы сохраните вышеупомянутое в файле setup.msbuild, вы можете создать свою настройку, вызвав

C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe setup.msbuild

Вы также можете установить .NET с установочного компакт-диска, а не загружать его. Просто добавьте ComponentsLocation="Relative" к атрибутам GenerateBootstrapper.

1 голос
/ 25 августа 2009

От Роб Меншинг ведущий разработчик WiX: это ключевой сценарий для Burn (будущего загрузчика WiX).

Так что нет, не существует встроенного способа остановить процесс с использованием WiX pure. Вы можете написать свой собственный загрузчик .

1 голос
/ 07 июля 2009

Для этого вам понадобится загрузчик. Установщик Microsoft не позволит вам запустить другой установщик, если он уже запущен. Есть генератор начальной загрузки, который вы можете использовать из файлов msbuild, включенных в Visual Studio, или вы можете посмотреть на многие опции с открытым исходным кодом.

dotNetInstaller является популярным вариантом. А «Burn» - это название предстоящего инструмента в WiX для этой задачи. Но это пока концептуальная программа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...