Путаница между Universal C Runtime и Visual C++ Redistributable

Вопрос или проблема

Я пытаюсь разобраться, какие предварительные требования необходимо установить пользователю на своем компьютере перед установкой моего приложения. У моего приложения есть следующие зависимости:

введите описание изображения здесь

Я разработал его на Windows 11, используя последнюю версию SDK на момент написания. На моем компьютере для разработки оно работает отлично, но, очевидно, у меня установлены все библиотеки для разработки, которых не будет на компьютере клиента. Я наткнулся на эти две ссылки:

Я хотел бы знать, нужны ли какие-либо из них как предварительные требования и установлены ли они по умолчанию на Windows. Судя по моим данным, я пришёл к выводу, что:

  1. Да, обе необходимые, и
  2. Universal C Runtime по умолчанию установлен на Windows 10 или более поздних версиях (поэтому никаких действий для установки этого на Windows 10 или более поздних версиях не требуется).

Это правильно? Также, есть ли рекомендации по разработке установщика WiX, который корректно установит эти предварительные требования на компьютере пользователя? Я мало знаю о C++, поэтому извиняюсь, если задаю вопрос новичка.

Ответ или решение

Чтобы подготовить ваше приложение к установке на машине пользователя, необходимо правильно определить его зависимости и предварительные требования. Давайте разберемся с Universal C Runtime и Visual C++ Redistributable.

1. Universal C Runtime (UCRT)

Universal C Runtime является компонентом, который обеспечивает поддержку стандартной библиотеки языка C в Windows. UCRT поставляется вместе с Windows 10 и более поздними версиями, что означает, что на многих современных системах он уже установлен. Чаще всего вам не нужно беспокоиться о его установке, если ваше приложение будет запускаться на Windows 10 или более поздних версиях. Однако вам стоит проверить, если ваше приложение запускается на более ранних версиях Windows (например, Windows 7 или 8), тогда UCRT должен быть установлен отдельно.

2. Visual C++ Redistributable

Visual C++ Redistributable — это пакет, который включает необходимые библиотеки для запуска приложений, скомпилированных с использованием Visual C++. Эти библиотеки не всегда предустановлены на пользовательских компьютерах и могут потребоваться для корректной работы вашего приложения. В зависимости от того, какую версию Visual Studio вы использовали при разработке приложения, возможно, вам потребуется включить соответствующий Visual C++ Redistributable в установку вашего приложения.

Итак, ваши выводы верны:

  1. Да, действительно, обе компоненты могут потребоваться.
  2. Да, Universal C Runtime предустановлен на Windows 10 и более поздних версиях, и дополнительные установки не требуются. Если же приложение будет запущено на Windows 7 или 8, вам потребуется указать установку UCRT.

Создание инсталлятора с использованием WiX

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

  1. Подключите нужные пакеты Redistributable:
    Вам нужно будет добавить ссылки на соответствующие пакеты Visual C++ Redistributable в проект WiX. Обычно это можно сделать с помощью команды WixBundleAction для добавления необходимого перемещения.

  2. Убедитесь, что пакеты устанавливаются перед вашим приложением:
    В вашем WiX проекте вы можете добавить проверки, чтобы убедиться, что требуемые версии Redistributable уже установлены. Если большая часть пользовательских систем имеет предустановленные версии, это упростит процесс.

Вот пример, как можно описать установки Redistributable в WiX:

<Bundle>
  <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />

  <Chain>
    <PackageGroupRef Id="VCRedist" />
    <MsiPackage SourceFile="path\to\your\application.msi" />
  </Chain>
</Bundle>

<Fragment>
  <PackageGroup Id="VCRedist">
    <ExePackage Id="VCRedist2019"
                SourceFile="path\to\vc_redist.x64.exe"
                InstallCommand="/install /quiet /norestart"
                DetectCondition="VCRedist2019Installed"
                SkipIfAlreadyInstalled="yes" />
  </PackageGroup>
</Fragment>

Убедитесь, что у вас правильные пути к файлам и версии пакетов.

Вывод:

Убедитесь, что у вас есть все необходимые компоненты для работы вашего приложения. Использование WiX – отличный способ упрощения установки для конечного пользователя, чтобы он автоматически получил нужные зависимости. Надеюсь, это описание помогло прояснить ваши вопросы! Если у вас есть дополнительные вопросы, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...