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

StackOverflow https://stackoverflow.com/questions/624614

Вопрос

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

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

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

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

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

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

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

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

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

Связанный с этим вопрос:Является .NET 3.5 является разумным предварительным условием для плагина media center?

Это было полезно?

Решение 4

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

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

Другие советы

Я полагаю, что установка .NET входит в обязанности setup.exe загрузчика перед запуском вашего msi.У WIX нет (пока) собственного способа создания загрузчика (или, если есть, это не задокументировано в wix.chm).Вместо этого вы можете использовать задачу GenerateBootStrapper msbuild для создания 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 настройка.msbuild

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

Установщик dotNetInstaller поддерживает все это

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top