Я работаю над приложением c ++ для Windows на Visual Studio 2010.
Я хочу доставить свое приложение своему клиенту, чтобы он мог легко его использовать, без обязательства по установке Visual Runtime FX. И быть исполненным везде.
Как настроить установщик так, чтобы клиенту не нужно было отдельно устанавливать какие-либо необходимые библиотеки среды выполнения Visual Studio?
Пожалуйста, я хочу решить эту проблему, потому что мои клиенты так далеки от вычислений, что им нравится просто система «следующий, следующий, установить, закончить».
Спасибо за помощь.
Обычно это статическое связывание, частное развертывание, использование модулей слияния для повторного использования чужой логики или перераспределение предварительных требований с помощью загрузчика.
Невозможно дать точный ответ, не зная, каковы ваши точные зависимости, но вот за и против для каждого:
статическое связывание — Легко, так как нет ничего, чтобы развернуть, кроме вашего файла. Основным недостатком является то, что если библиотека обладает уязвимостью безопасности и требует исправления, вы не сможете без перестройки и повторного развертывания приложения.
частное развертывание — Относительно просто, поскольку вы просто развертываете файл в каталоге вашего приложения. По-прежнему возникают проблемы с обслуживанием, так как вам приходится перестраивать и повторно развертывать приложение. Microsoft не исправит ваш каталог.
модуль слияния — кажется простым, просто добавьте модуль слияния. Тем не менее, по-прежнему существуют серьезные проблемы в том, что если есть проблема с модулем слияния, вы зависите от поставщика. (Microsoft). Вот почему использование модулей слияния не одобряется в эти дни.
redist — сложнее всего реализовать (вам нужно определить загрузчик setup.exe), но также проще всего — использовать чужой установщик. Это оптимально, так как этот поставщик может затем исправить эту DLL, не перестраивая вашу.
Так что, в общем, редист это путь. Но не всегда… 🙂
Вы либо статически связываете свой продукт, чтобы у него не было внешних зависимостей, либо включаете MSI Объединить модули для компонентов среды выполнения, которые вам нужны при сборке установщика.
Вообще говоря, у вас есть два варианта:
Создайте установщик (используя, например, WiX или NSIS). Установщик установит ваше приложение вместе со всеми необходимыми библиотеками. Поскольку вы распространяете свое приложение, скорее всего, вы уже создаете установщик, и поэтому это решение имеет смысл.
Статически свяжите ваш файл с любыми необходимыми библиотеками. Таким образом, исполняемый файл вашего приложения включает в себя весь необходимый код. Это, конечно, предполагает, что используемые вами библиотеки могут быть статически связаны. Это может быть не так.