windows — доставить приложение c ++ для конечного потребителя

Я работаю над приложением c ++ для Windows на Visual Studio 2010.

Я хочу доставить свое приложение своему клиенту, чтобы он мог легко его использовать, без обязательства по установке Visual Runtime FX. И быть исполненным везде.

Как настроить установщик так, чтобы клиенту не нужно было отдельно устанавливать какие-либо необходимые библиотеки среды выполнения Visual Studio?

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

Спасибо за помощь.

0

Решение

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

Невозможно дать точный ответ, не зная, каковы ваши точные зависимости, но вот за и против для каждого:

статическое связывание — Легко, так как нет ничего, чтобы развернуть, кроме вашего файла. Основным недостатком является то, что если библиотека обладает уязвимостью безопасности и требует исправления, вы не сможете без перестройки и повторного развертывания приложения.

частное развертывание — Относительно просто, поскольку вы просто развертываете файл в каталоге вашего приложения. По-прежнему возникают проблемы с обслуживанием, так как вам приходится перестраивать и повторно развертывать приложение. Microsoft не исправит ваш каталог.

модуль слияния — кажется простым, просто добавьте модуль слияния. Тем не менее, по-прежнему существуют серьезные проблемы в том, что если есть проблема с модулем слияния, вы зависите от поставщика. (Microsoft). Вот почему использование модулей слияния не одобряется в эти дни.

redist — сложнее всего реализовать (вам нужно определить загрузчик setup.exe), но также проще всего — использовать чужой установщик. Это оптимально, так как этот поставщик может затем исправить эту DLL, не перестраивая вашу.

Так что, в общем, редист это путь. Но не всегда… 🙂

1

Другие решения

Вы либо статически связываете свой продукт, чтобы у него не было внешних зависимостей, либо включаете MSI Объединить модули для компонентов среды выполнения, которые вам нужны при сборке установщика.

2

Вообще говоря, у вас есть два варианта:

  • Создайте установщик (используя, например, WiX или NSIS). Установщик установит ваше приложение вместе со всеми необходимыми библиотеками. Поскольку вы распространяете свое приложение, скорее всего, вы уже создаете установщик, и поэтому это решение имеет смысл.

  • Статически свяжите ваш файл с любыми необходимыми библиотеками. Таким образом, исполняемый файл вашего приложения включает в себя весь необходимый код. Это, конечно, предполагает, что используемые вами библиотеки могут быть статически связаны. Это может быть не так.

2

Пожалуйста, не связывайте статически ничего. Если вы создаете установщики MSI, просто включите модули слияния для среды выполнения Visual Studio, как описано Вот а также Вот. Если вы можете использовать последнюю версию WiX, вы можете создать сверток.

2
По вопросам рекламы [email protected]