Создание файла Установщика приложений в Visual Studio
Местоположение файла установщика приложений
Настройка проекта для подходящей версии Windows
Можно настроить свойство TargetPlatformMinVersion при создании проекта или изменить его позже в свойствах проекта.
файл установщика приложения создается только при TargetPlatformMinVersion Windows 10 версии 1803 или более поздней.
Создание пакетов
Чтобы распространить приложение с помощью загрузки неопубликованных приложений, необходимо создать пакет приложения (Appx/. msix) или набор приложений (. appxbundle/. msixbundle) и опубликовать его в общем расположении.
Для этого используйте мастер создания пакетов приложения в Visual Studio и выполните следующие шаги.
Щелкните проект правой кнопкой мыши и выберите магазин — создать пакеты приложений.
Откроется мастер Создание пакетов приложения.
Включить автоматические обновления включается, только если для проекта указана подходящая версия Windows 10.
Не забудьте выбрать поддерживаемые конфигурации архитектуры в диалоговом окне Выберите и настройте пакеты. Если выбран пакет, он создаст отдельный установщик, однако если вы не хотите использовать пакет и предпочитаете по одному пакету на архитектуру, вы получите один файл установщика на архитектуру. Если вы не уверены, какие архитектуры выбрать, или хотите узнать больше о том, какие архитектуры используются разными устройствами, см. информацию в разделе Архитектуры пакета приложения.
Настройте любые дополнительные сведения, включая номер версии и выходное расположение пакета.
Если установлен флажок Включить автоматические обновления в шаге 2, отобразится диалоговое окно Настройка параметров обновления. Здесь можно указать URL-адрес установки и периодичность проверки обновлений.
Если приложение успешно упаковано, в диалоговом окне отобразится расположение выходной папки, которая содержит ваш пакет приложения. Выходная папка содержит все файлы, необходимые для загрузки неопубликованного приложения, включая страницу HTML, которую можно использовать для продвижения вашего приложения.
Публикация пакетов
Чтобы сделать приложение доступным, необходимо опубликовать созданные файлы в указанном местоположении:
Публикация в общие папки (UNC)
Если требуется опубликовать пакеты с помощью общих папок UNC, укажите один и тот же путь для выходной папки пакета приложения и URL-адреса установки (см. подробные сведения в шаге 6). Мастер создаст файлы в правильном местоположении, а пользователи будут получать приложение и будущие обновления к нему по тому же пути.
Публикация в местоположении в Интернете (HTTP)
Чтобы выполнить публикацию в местоположении в Интернете, требуется доступ, позволяющий публиковать содержимое на веб-сервере. Убедитесь, что окончательный URL-адрес соответствует URL-адресу установки, определенному в мастере (см. подробные сведения в шаге 6). Как правило, для отправки файлов используется протокол FTP или SFTP, однако существуют и другие методы публикации, например MSDeploy, SSH или хранилище BLOB-объектов (в зависимости от вашего интернет-провайдера).
Inno Setup: создание инсталлятора на примере развертывания C# приложения
Я не являюсь профессиональным программистом. В том смысле, что не зарабатываю денег этим ремеслом, а использую свои навыки в качестве инструмента для основной, научной, деятельности. Поэтому все мои «поделки» живут лишь отведенный им на решение конкретной задачи период и не выходят за пределы каталогов проекта. Кроме того, уже довольно давно я отошел от разработки под ОС Windows, ибо Linux для решения моих задач более удобен.
Однако ученым тоже хочется кушать, прилично одеваться и заправлять машину. Поэтому (правда довольно редко) возникает необходимость немного пофрилансить.
Недавно мне подкинули не слишком сложный проект — одна фирма хочет написать аналог программы, имеющейся у другой. Немного реверсинга, немного кодинга, в целом проект вполне обыденный. Однако тут же возник вопрос о создании инсталлятора — клиент ведь желает продукт «под ключ», чтобы клацнуть на «сетап», понажимать «Далее» и получить готовую к работе программу.
Созданием инсталляторов я не занимался никогда. Поэтому данный вопрос был основательно «загуглен», в числе прочего попалась и такая статья с Хабра. Выбор средств для подобной задачи довольно широк, и включает как проприетарные, так и открытые продукты. Вот список того, что я «пощупал»
Так что в статье мы будем рассматривать пример использования Inno Setup, для которого имеется полезный фронтэнд Inno Script Studio, позволяющий выполнять создание простых инсталляторов с помощью мастера и менять настройки через GUI. GUI понадобился мне для первого знакомства, с продуктом, но мы не будем уделять ему большого внимания — мой «линукс головного мозга» в последнее время всё больше и больше уводит меня от желания использовать разного рода «мастера» (это субъективно, прошу не пинать). Мы рассмотрим хардкорный способ написания скрипта с чистого листа.
1. Установка, настройка и простой (но довольно солидный) скрипт
Думаю, что скачать программу с официального сайта и установить её труда не составит. Запускаем Inno Setup Compiler и видим такое окно
Пугающе уныло встречает нас Inno Setup.
Что это? По сути это просто-напросто редактор для набора скриптов, снабженный подсветкой синтаксиса и кнопками компиляции и запуска. От нас ждут, что мы начнем набирать в этом окне текст скрипта, определяющий логику работы будущего инсталлятора. Ну так и не будем терять время.
Прежде всего определим необходимые константы
Эти строки будут часто встречаться в коде скрипта, поэтому определяем их, как и в C, с помощью дерективы #define
Тело скрипта разделяется на секции, каждая из которых несет свое функциональное назначение. Обязательная секция [Setup] задает глобальные параметры работы инсталлятора и деинсталатора.
Путь, по умолчанию предлагаемый инсталлятором для установки определяем опцией DefaultDirName. При этом переменная — это путь в каталог Program Files соответствующей разрядности. Опция DefaultGroupName определяет имя группы программы в меню «Пуск». Обратите внимание на то, что для указания имени приложения мы используем данное нами выше макроопределение Name, обрамляя его фигурными скобками и решеткой.
Пара опций OutputDir и OutputBaseFileName задают каталог, куда будет записан скомпилированный «сетап» и его имя (без расширения). Кроме этого, указываем где взять иконку для test-setup.exe опцией SetupIconFile.
Последние опции в этой секции определяют алгоритм сжатия (LZMA) и указывают, что все файлы сжимаются одновременно, а не по отдельности (SolidCompression) что ускоряет процесс распаковки при большом количестве однотипных файлов.
В хорошем исталяторе должна быть поддержка нескольких языков. Включаем её в наш «сетап», используя опциональную секцию [Languages]. При отсутствии данной секции будет использоваться английский язык.
Каждая строка в данной секции задает один из используемых при установке языков. Синтаксис строки таков
в качестве разделителя параметров используется точка с запятой. Параметр Name говорит сам за себя — «имя» языка, допускаются общепринятые двухбуквенные сокращения («en», «ru», «de» и так далее). Параметр MessagesFile сообщает компилятору в каком месте взять шаблон сообщений, выводимых при инсталляции. Эти шаблоны берем в каталоге компилятора Inno Setup, о чем мы сообщаем директивой compiler. Для английского языка годится шаблон Default.isl, для русского — Languages\Russian.isl
Параметр LicenseFile задает путь к файлу с текстом лицензии на соответствующем языке.
Обычно установщик предлагает нам, например, определится, хотим мы или не хотим создать ярлык на рабочем столе. Такие опции установки определяются необязательной секцией [Tasks]
Здесь Name задает имя операции — «desktopicom» — создание иконки на рабочем столе; Description — описание чекбокса с опцией, которое увидит пользователь. Конструкция
задает стандартный текст сообщения, соответствующий выбранному в начале инсталляции языку. Параметр GroupDescription — заголовок группы чекбоксов с опциями. Параметр Flags задает определенные действия и состояния элементов управления, в данном случае указывая, что галочка «создать ярлык на рабочем столе» должна быть снята.
Теперь укажем, какие файлы надо включить в дистрибутив и где их надо поместить при установке. Для этого используется обязательная секция [Files]
Наконец, чтобы всё было красиво, опционально укажем компилятору, где брать иконки для размещения в меню программ и на рабочем столе
Тут я указываю, что для группы в меню «Пуск» и для рабочего стола иконку надо брать из исполняемого модуля. Естественно, что иконка должна быть в него «вкомпилена», иначе в требуемых местах мы увидим стандартный значок из коллекции винды.
Итак, всё вроде готово. Жмем Ctrl + F9 и пытаемся собрать инсталлятор. Если не допущены синтаксические ошибки, начнется процесс сборки
Inno Setup собирает инсталлятор
После успешной сборки инсталлятор можно запустить, нажав F9. Если Вы работаете под учеткой с ограниченными правами (а я работаю в винде именно так), то придется полезть в каталог с результатами компиляции, который мы указали в скрипте, и запустить инсталлятор с правами админа
Запуск инсталлятора под ограниченной учетной записью
В итоге мы увидим до боли знакомое каждому пользователю Windows окно выбора языка
приветствие мастера
лицензионное соглашение
ну и так далее. Приятно, что по умолчанию используется лаконичный дизайн мастера, без рюшечек (которые при желании можно добавить)
Ну что сказать? Ура! Мы написали свой первый «сетап» и могли бы радоваться, но
Вы не заметили, что мы о чем-то забыли? Приложение, созданное на C# не будет работать без фреймворка, с которым оно было собрано, если таковой отсутствует в системе. Соответствующий фреймворк надо установить, а для этого необходимо
Значения в реестре, которые необходимо проверить приведены в официальной документации Microsoft, в статье я приведу краткую выжимку из неё
Для реализации произвольной логики работы инсталлятора в Inno Setup предусмотрена секция [Code]. В пределах этой секции размещается код реализующих логику функций на языке Pascal. Содежимое этой секции мы вынесем в отдельный файл dotnet.pas и включим в основной скрипт дерективой #include
хотя можно набить код и непосредственно в секции [Code]. Надо помнить, что внутри этой секции используется синтаксис Pascal, и комментарии предваряются последовательностью «//» вместо используемой в основной части скрипта точки с запятой.
Не смотря на обилие кода, логика его работы достаточно проста — в зависимости от значения параметра version с помощью функции RegQueryDWordValue(. ) читается значение соответствующего ключа реестра и сравнивается с требуемым значением (смотрим таблицу 1). Для версии 4.5 дополнительно передаем номер релиза в параметре release.
Для того, чтобы перед началом установки проверить наличие фреймворка и сообщить пользователю о предпринимаемых действиях используем Callback-функцию InitializeSetup()
Сам запуск инсталляции фрейворка можно выполнить после установки основной программы, поэтому включаем в скрипт секцию [Run], в которой указывается, что необходимо запускать по окончании установки
Обратите внимание на то, что мы сначала указываем имя секции [Run], чтобы закрыть секцию [Code], а затем пишем комментарий начинающийся с точки с запятой. Это необходимо из-за различия синтаксиса основного скрипта и секции [Code], в противном случае при компиляции мы получим синтаксическую ошибку.
В секции задается путь к инсталлятору фреймворка — предварительно он распакован нами во временный каталог (переменная содержит путь к веременному каталогу); задаются параметры командной строки. Опция Check определяет условие запуска инсталляции — это отсутствие в целевой системе нужного нам фреймворка. Опция StatusMsg определяет сообщение, которое увидит пользователь в окне инсталлера.
Снова компилируем наш проект. Теперь, при запуске на «чистой» винде инсталлятор выдаст сообщение
Майкрософт просит нас принять лицензию.
После этого мы получаем работоспособное C# приложение установленное «по взрослому»
Заключение
Я не профессионал и во многих вещах могу ошибаться. Прошу отнестись к этому с пониманием. Статья писалась нубом для нубов, её основная цель — задать вектор поиска при решении задачи написания инсталлятора. За остальными вопросами можно обратится к документации, поставляемой вместе с Inno Setup.
Код данного примера доступен в моем репозитории на Github. «Кракозябры» в комментах вызваны несовпадением кирилических кодировок. Для себя всегда пишу английские комментарии, но для лучшего понимания кода допустил этот ляп. При скачивании в винде всё просматривается замечательно, так что прошу простить мне и эту несуразность.
В остальном, полагаю «хаутушка» вышла достойной и благодарю за уделенное мне внимание.
Пошаговое руководство. Развертывание программы (C++)
Теперь, когда вы создали свое приложение, выполнив описанные ранее пошаговые руководства, необходимо выполнить последний шаг — создать установщик, чтобы другие пользователи могли установить программу на своих компьютерах. Для создания установщика следует добавить новый проект в имеющееся решение. Выходным файлом этого проекта будет являться файл setup.exe, который служит для установки приложения на другом компьютере.
В этом пошаговом руководстве показано, как развернуть приложение с помощью установщика Windows. Кроме того, для развертывания приложения может использоваться ClickOnce. Дополнительные сведения см. в разделе ClickOnce Deployment for Visual C++ Applications. Дополнительные общие сведения о развертывании см. в разделе Развертывание приложений, служб и компонентов.
Предварительные требования
В этом пошаговом руководство предполагается, что вы знакомы с основами языка C++.
Инструкции этого руководства невозможно выполнить в выпусках Express среды Visual Studio.
Установка шаблона проекта установки и развертывания Visual Studio
Инструкции в этом разделе отличаются в зависимости от установленной версии Visual Studio. Чтобы ознакомиться с документацией по предпочтительной версии Visual Studio, используйте селектор Версия. Он находится в верхней части оглавления на этой странице.
Установка шаблона проекта установки и развертывания для Visual Studio
Если вы еще не скачали расширение проектов Microsoft Visual Studio Installer, сделайте это сейчас. Это расширение предоставляется использующим Visual Studio разработчикам бесплатно. Оно добавляет в Visual Studio функции шаблонов для проектов установки и развертывания. Если вы подключены к Интернету, выберите в Visual Studio Расширения Управление расширениями. В диалоговом окне Расширения и обновления выберите вкладку В сети и введите в поле поиска строку проекты установщика Microsoft Visual Studio. Нажмите клавишу ВВОД, выберите Microsoft Visual Studio номер_версии Проекты установщика и щелкните Скачать. Выберите запуск и установку расширения, а затем перезапустите Visual Studio.
В строке меню Visual Studio последовательно выберите Файл Последние проекты и решения, а затем действие открытия проекта.
В строке меню выберите Файл Создать Проект, чтобы открыть диалоговое окно Создание проекта. В поле поиска введите «Установка» и выберите в списке результатов пункт Проект установки.
В поле Имя введите имя проекта установки. В раскрывающемся списке Решение выберите пункт Добавить в решение. Нажмите кнопку ОК, чтобы создать проект установки. В окне редактора откроется вкладка File Assistant (ProjectName) (Помощник по файлам (имя проекта)).
Щелкните правой кнопкой мыши узел Папка приложения и последовательно выберите Добавить Выходной элемент проекта, чтобы открыть диалоговое окно Добавление выходной группы проекта.
В этом диалоговом окне выберите Основные выходные файлы и щелкните OK. Появится новый элемент с именем Primary Output from Game (Active) (Основные выходные файлы игры (активно)).
Выберите этот элемент Primary Output from Game (Active) (Основные выходные файлы игры (активно)), щелкните его правой кнопкой мыши и выберите пункт Create Shortcut to Primary Output from Game (Active) (Создать ярлык на основные выходные файлы игры (активно)). Появится новый элемент с именем Shortcut to Primary Output from Game (Active) (Ярлык на основные выходные файлы игры (активно)).
Присвойте этому ярлыку имя Игра, затем перетащите его в узел User’s Programs Menu (Пользовательское меню «Программы») в левой части окна.
В обозревателе решений выберите проект Установщик игры, а затем Представление Окно «Свойства» или нажмите клавишу F4, чтобы открыть окно Свойства.
Укажите дополнительные сведения, которые вы хотите отображать в установщике. Например, укажите Contoso в поле Производитель, Установщик игры в поле Название продукта и в поле SupportUrl (URL-адрес поддержки).
В строке меню последовательно выберите пункты Сборка Диспетчер конфигураций. В таблице Проект установите флажок в столбце Сборка для элемента Установщик игры. Щелкните Закрыть.
В строке меню выберите Сборка Собрать решение, чтобы выполнить сборку проекта «Игра» и проекта «Установщик игры».
В папке решения найдите программу setup.exe, собранную из проекта «Установщик игры», и запустите ее, чтобы установить приложение «Игра» на компьютере. Можно скопировать этот файл (вместе с GameInstaller.msi), чтобы установить приложение и все необходимые файлы библиотеки на другом компьютере.
Установка шаблона проекта установки и развертывания для Visual Studio 2017 и более ранних версий
Если вы подключены к Интернету, выберите в Visual Studio Сервис Расширения и обновления.
В разделе Расширения и обновления выберите вкладку В Интернете и введите в поле поиска строку проекты установщика Microsoft Visual Studio. Нажмите клавишу ВВОД, выберите Microsoft Visual Studio номер_версии Проекты установщика и щелкните Скачать.
Выберите установку расширения, а затем перезапустите Visual Studio.
В строке меню последовательно выберите Файл Последние проекты и решения и щелкните решение Игра, чтобы снова открыть его.
Создание проекта установки и установка программы
Измените активную конфигурацию решения, указав значение Выпуск. В строке меню последовательно выберите пункты Сборка Диспетчер конфигураций. В диалоговом окне Диспетчер конфигураций выберите в раскрывающемся списке Активная конфигурация решения пункт Выпуск. Нажмите кнопку Закрыть, чтобы сохранить конфигурацию.
В строке меню выберите Файл Создать Проект, чтобы открыть диалоговое окно Новый проект.
В левой области диалогового окна разверните узлы Установленные Другие типы проектов, а затем выберите пункт Visual Studio Installer. В центральной области выберите Настройка проекта.
В поле Имя введите имя проекта установки. Для этого примера введите Установщик игры. В раскрывающемся списке Решение выберите пункт Добавить в решение. Нажмите кнопку ОК, чтобы создать проект установки. В окне редактора откроется вкладка File Assistant (Game Installer) (Помощник по файлам (установщик игры)).
Щелкните правой кнопкой мыши узел Папка приложения и последовательно выберите Добавить Выходной элемент проекта, чтобы открыть диалоговое окно Добавление выходной группы проекта.
В этом диалоговом окне выберите Основные выходные файлы и щелкните OK. Появится новый элемент с именем Primary Output from Game (Active) (Основные выходные файлы игры (активно)).
Выберите этот элемент Primary Output from Game (Active) (Основные выходные файлы игры (активно)), щелкните его правой кнопкой мыши и выберите пункт Create Shortcut to Primary Output from Game (Active) (Создать ярлык на основные выходные файлы игры (активно)). Появится новый элемент с именем Shortcut to Primary Output from Game (Active) (Ярлык на основные выходные файлы игры (активно)).
Присвойте этому ярлыку имя Игра, затем перетащите его в узел User’s Programs Menu (Пользовательское меню «Программы») в левой части окна.
В обозревателе решений выберите проект Установщик игры, а затем Представление Окно «Свойства» или нажмите клавишу F4, чтобы открыть окно Свойства.
Укажите дополнительные сведения, которые вы хотите отображать в установщике. Например, укажите Contoso в поле Производитель, Установщик игры в поле Название продукта и в поле SupportUrl (URL-адрес поддержки).
В строке меню последовательно выберите пункты Сборка Диспетчер конфигураций. В таблице Проект установите флажок в столбце Сборка для элемента Установщик игры. Щелкните Закрыть.
В строке меню выберите Сборка Собрать решение, чтобы выполнить сборку проекта «Игра» и проекта «Установщик игры».
Программирование на C, C# и Java
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
ОСТОРОЖНО МОШЕННИКИ! В последнее время в социальных сетях участились случаи предложения помощи в написании программ от лиц, прикрывающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в посторонних группах ВК. Для связи с нами используйте исключительно эти контакты: vscoderu@yandex.ru, https://vk.com/vscode
Создание инсталлятора в Visual Studio
В этой статье поговорим про создание инсталлятора в Visual Studio средствами InstallShield.
В браузере откроется вот такая страница. Кликаем на ссылку в Шаге 2.
Откроется сайт, в котором необходимо заполнить свои личные данные. Заполняем и жмем кнопку “Download Now”.
Откроется страница, на которой будет написан код активации для InstallShield. Также он будет отправлен на указанный при регистрации e-mail. Нажмем кнопку “Download” и начнется загрузка программы на ваш компьютер.
Закрываем Visual Studio и устанавливаем скачанную программу. Директорию установки оставляем без изменения.
Необязательно. В начале установки InstallShield может предупредить о том, что необходимо установить недостающие компоненты для работы программы. Жмем кнопку “Install”, и эти компоненты будут установлены.
Запускаем Visual Studio, создаем проект, переходим в раздел “Установка и развертывание” и выбираем “InstallShield Limited Edition Project”, жмем кнопку “ОК”.
Нас попросят активировать программу. Выберем “Activate or Register for free copy of InstallShield” и нажмем кнопку “Next”. Введем код, полученный ранее, и щелкнем кнопку “Activate”. InstallShield активирован. На экране появится такое окно проекта:
В одной из статей мы рассматривали разработку гитарного тюнера. Создадим инсталлятор для этой программы. Для этого пройдемся по всем вкладкам внизу InstallShield и введем необходимую информацию. Итак, во вкладке “Application Information” введем информацию о компании, название программы, ее версию и веб сайт:
Перейдем во вкладку “Installation Requirements”. Укажем, собрать ли приложение для всех доступных Windows или для каких-либо определенных. Так же выберем требования для программ, которые должны быть обязательно установлены для нормальной работы нашей программы.
В следующей вкладке (Installation Architecture) настройки недоступны, потому что мы используем бесплатную версию InstallShield.
Переходим далее. Вкладка “Application Files”. Жмем кнопку “Add Files” и добавляем все файлы программы, для которой делаем установщик, из папки bin/release (предварительно эту программу нужно собрать как release версию).
Следующая вкладка “Application Shortcuts”. Здесь представлены настройки ярлыков программы. Сначала удаляем нижний файл с припиской “vshost.exe”, затем, по желанию, ставим галочку напротив параметра “создать иконку на рабочем столе”. Ниже можно выбрать свою иконку для программы.
Вкладку “Application Registry” оставляем без изменений.
В последней вкладке “Installation Interview” настраиваем следующие параметры: просить ли пользователя принять лицензию, вводить ли название компании и имя пользователя, разрешить ли пользователю изменять путь установки и добавить ли опцию запуска приложения после установки.
Теперь выберем русский язык в установщике. Для этого в “обозревателе решений” два раза щелкнем на “General information” и в появившемся окне выберем русский язык.
Последний штрих. В верхней панели Visual Studio выбираем “SingleImage” и жмем кнопку “Присоединение…”. Подождем пока файл установщика соберется. Готово!