Создание дистрибутива для Windows приложения в С# и установка приложения

Глава 10. Создание дистрибутива для Windows приложения в Visual Studio 2005

Создание дистрибутива для Windows приложений это начальный этап процесса развертывания (распространения готового приложения или компонента на другие компьютеры).

В Visual Studio развертывание приложений основано на использовании технологии установщика Microsoft Windows, включающего и средства для создания загружаемых файлов.

Существует две возможности создания проектов установки:


В начало

Параграф 1. Создание связанного проекта установки

После создания Windows приложения (далее использован проект решения с именем Hello), создадим установочные файлы для его инсталляции на компьютере. Для этого, в контекстном меню проекта (верхний узел в дереве Solutation Explorer), в окне Solution Explorer выбираем пункты Add и New Project (Рис.1.).

winsetup001.gif

Рис.1. Добавление установочного проекта к решению

В левой части мастера Add New Project (Рис.2.), в окне Projeсt Types, выбираем папку Other Project Types\Setup and Deployment, а в правой части - Setup Project. Задаем имя проекта и его размещение (например, HelloSetup - имя не должно совпадать с именем проекта приложения). На данном этапе можно воспользоваться и Setup Wizard (правда, он позволяет сделать далеко не все, что часто требуется). Для большего понимания, пройдем все шаги без использования Setup Wizard.

winsetup002.gif

Рис.2. Добавление установочного проекта к решению

Нажимаем OK. Будет создан установочный (Setup) проект (Рис.3.).

winsetup003.gif

Рис.3. Установочный проект

Среди свойств проекта (Рис.4.): AddRemoveProgramsIcon, Author, Description, DetectNewerInstalledVersion, Keywords, Localization, Manufacturer, ManufacturerUrl, ProductCode, ProductName, RemovePreviousVersions, SearchPath, Subject, SupportPhone, SupportUrl, Title, UpgradeCode, Version. Большинство из них понятны, и могут быть заданы автором программы, исходя из принятых в организации требований. В данном проекте установлено: Manufacturer - Private, ProduktName - HelloSetup, Title - Hello. Свойство AddRemoveProgramsIcon - позволяет установить иконку для описания программы в панели Установка и удаление программ (Пуск\Панель управления\Установка и удаление программ).

Для установки иконки можно выбирать в выпадающем списке AddRemoveProgramsIcon - Browse, затем в окне Icon вновь Browse, в окне Select Item in Project, в его выпадающем списке Look in, выбрать Application Folder. Далее, кнопочкой Add File, вызвав диалог Add File, выбрать любую иконку для Application Folder из имеющихся в файловой системе. Но это можно сделать и по другому, что позволит использовать иконку exe файла приложения (посмотреть установленную иконку приложения или установить новую можно на вкладке Application\Resurses\Icon - контекстное меню приложения - пункт Properties). Как использовать иконку приложения поговорим чуть позже.

winsetup004.gif

Рис.4. Свойства установочного проекта

А пока вернемся к Рис.3. - в левой части окна представлены папки файловой системы компьютера, в одну из которых будет установлено приложение, и, в которые, будет возможно добавить ссылки на папку с установленной программой (пока все папки пусты).

Далее, выделяем папку Application Folder (сюда будет установлен проект). Папки могут быть добавлены при использовании контекстного меню узла File System on Target Machine. Обычно приложения устанавливается в Application Folder. Выбираем пункты Add и Project Output (это же можно сделать и через контекстное меню узла Application Folder).

winsetup005.gif

Рис.5. Добавление приложения Windows в проект установки

Далее, в диалоговом окне Add Object Output Group (Рис.5.) выбираем проект Hello и опцию Primary Output. После нажатия OK в папке Appliсation Folder появится пункт, означающий, что в проект установки добавлены требуемые файлы из проекта Hello (Рис.6.).

PS: На данном этапе в проект можно добавлять папки, файлы и сборки. Например, программа работает с запасом картинок, который должен быть размещен в директории Images. При отладке мы поместим эту директорию с файлами в Debug или Release, но инсталляционная программа ее не подхватит. В этом случае, мы и добавим к установочному проекту директорию Images через пункт Add\Folder, а затем наполним ее файлами - Add\File...

winsetup006.gif

Рис.6. Добавление приложения Windows в проект установки

Добавим ссылки на папку, куда будет установлено приложение (у нас в C:\Programm Files\Privat\Hello), в меню Пуск\Программы, и на рабочий стол Windows. Рассмотрим данный процесс на примере добавления папки на рабочий стол (он полностью аналогичен процессу добавления папки в меню Пуск\Программы). Для добавления ссылки необходимо:

  • 1. В свойствах узла Users Desktop установить свойство AlwaysCreate в true. Это всегда необходимо, когда shortcut добавляется к специальной папке (Рис.7.).

  • 2. В контекстном меню редактора выбрать Create New ShortCut. В окне Properties для Shorcut to Users Desktop (Рис.8.) нажимаем кнопочку с тремя точками в свойстве Target. В появившемся окне Select Item In Project (Рис.8.) выбираем узел Application Folder и нажимаем кнопку OK.

winsetup007.gif

Рис.7. Создание ярлыка для папки приложения на рабочем столе Windows

winsetup008.gif

Рис.8. Создание ярлыка для папки приложения на рабочем столе Windows

Как результат, в окне Select Item In Project появится ссылка Shortcut to Primary output from Hello (Active).

После нажатия кнопки OK эта ссылка будет перенесена в окно редактора.

Далее можно изменить предложенное длинное имя "Shortcut to Primary output from Hello (Active)" - на то, под которым мы хотим видеть иконку ссылки на папку программы на рабочем столе (например, Hello). Если на данном этапе выполнить Rebuild решения и, далее, установить его, то на рабочем столе появится ссылка на папку, куда будет установлена программа, но у ссылки пока не будет иконки (вернее, будет стандартная иконка).

Создадим иконки для ссылок на рабочем столе, в меню Пуск\Программы, а также, для записи об установленной программе в окне Пуск\Панель управления\Установка и удаление программ (стандартная запись в окне Установка и удаление программ - один из результатов работы программы установки).

Добавление иконок для всех перечисленных случаев, во многом аналогично по последовательности действий. Отличие заключается лишь в том, что для записи о программе в окне Установка и удаление программ, перечисленные ниже действия выполняются для узла проекта установки и свойства AddRemoveProgramsIcon, а для остальных папок, для свойств Icon имен ссылок (у нас, имен ссылок Users Desktop и Users Programm Menu - Hello). Добавление иконок показано на Рис.9. и Рис.10.

Для установки иконки, в выпадающем списке соответственно перечисленных выше свойств, выбираем - Browse (Рис.9.), затем в окне Icon вновь Browse, в окне Select Item in Project, в его выпадающем списке Look in, выбираем Application Folder. Установив Files of Type в All Files выбираем Primary Output From Hello (Active), нажимаем OK. Иконка будет извлечена из ресурса приложения (Рис.10., справа) и, по нажатию кнопки OK, добавлена как иконка для записи или папки.

Для добавления иконки в другие папки, от момента выбора в выпадающем списке пункта Browse, как для рабочего стола, так и для Пуск\Программы в свойстве Icon (а не AddRemoveProgramsIcon для записи в Установка и удаление программ), все повторяется без единого отклонения.

winsetup009.gif

Рис.9. Создание иконок для папок и записи в окне Установка и удаление программ

winsetup010.gif

Рис.10. Создание иконок для папок и записи в окне Установка и удаление программ

В окне Select Item In Project, после выбора Application Folder можно также использоать и любой файл .ico, нажав кнопку Add File, как мы об этом говорили выше.

Вновь перекомпилируем проект (в контекстом меню Solution Explorer узла HelloSetup пункт Rebuild Solutation). В папке Release для HelloSetup будут созданы файлы setup.exe, hellosetup.msi. Это инсталляционные файлы приложения.

После запуска файла setup.exe будет выполнена установка приложения - для приложения появится отдельная запись в Пуск\Панель управления\Установка и удаление программ, а ссылка на папку приложения, в виде выбранной иконки - на рабочем столе и в меню Пуск\Программы.


В начало

Параграф 2. Создание разделенного с проектом решения проекта установки

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

Создадим новый проект, как показано на Рис.11. и Рис.12.

winsetup01.gif

Рис.11. Создание установочного проекта

winsetup02.gif

Рис.12. Создание установочного проекта

Свойства проекта, созданные папки мы рассматривали выше, поэтому не будем аовторять изложенное выше. Установим режим компиляции проекта Release. В этом режиме в папке bin\Release, будет сформирован exe файл, перенесены необходимые библиотеки при их использовании и исключена отладочная информация. Исходный проект (Hello) также должен быть скомпилирован в режиме Release.

Свойства самого проекта пока нового ничего нам не дают (Рис.13.).

winsetup03.gif

Рис.13. Свойства установочного проекта

Добавим исполняемый файл Hello.exe в папку Application Folder (не забудем перед этим установить свойство папки AlwaysCreate в true). Для добавления файла, в контекстном меню папки Application Folder, выбираем пункт Add\File и находим файл Hello.exe из папки bin\Release решения Hello (C:\SamplesC#\Hello\bin\Release\). После выбора найденного файла и нажатия кнопки OK, имя файла появляется в окне Name (Рис.14.).

winsetup014.gif

Рис.14. Добавление исполняемого файла в проект установки

Аналогично перенесем все файлы из директории \bin\Release\ в папку (если он там не один).

После этого можно приступить к созданию ссылок и иконок.

Иконка для установочной записи в Установка и удаление программ выбирается точно также, как описано выше (свойство AddRemoveProgramsIcon, в качестве ресурса в Application Folder в окне Select Item In Project выбираем Hello.exe файл Рис.9. и Рис.10.).

Добавление ссылок на рабочий стол и в меню Пуск\Программы немного отличается от предыдущего способа. В контекстном меню файла Hello.Exe дважды выбираем пункт Create Shortcut to Hello.Exe. В окне Name появятся два имени ссылок. Сразу в окне Properties для ссылок переименуем их имена на те, с которыми мы хотим их видеть на рабочем столе и в меню Пуск\Программы. Ссылки созданы, осталось перетащить эти ссылки на соответствующие папки (Рис.15., Рис.16.).

winsetup015.gif

Рис.15. Добавление ссылок на рабочий стол и в меню Пуск\Программы

winsetup016.gif

Рис.16. Добавление ссылок на рабочий стол и в меню Пуск\Программы

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

Откомпилируем проект (в контекстом меню Solution Explorer узла HelloSetup - пункт Rebuild Solutation). В папке Release для HelloSetup будут созданы файлы setup.exe, hellosetup.msi. Это инсталляционные файлы приложения. После запуска файла setup.exe будет выполнена установка приложения - для приложения появится отдельная запись в Пуск\Панель управления\Установка и удаление программ, а ссылка на exe файл приложения Hello, в виде иконки приложения - на рабочем столе и меню Пуск\Программы.

Молчанов Владислав 26.08.2004г.

Адаптировано к VS 2005 29.11.2006г.

Еcли Вы пришли с поискового сервера - посетите мою главную страничку

На главной странице Вы найдете программы комплекса Veles - программы для автолюбителей, программы из раздела графика - программы для работы с фото, сделанными цифровым фотоаппаратом, программу Bricks - игрушку для детей и взрослых, программу записную книжку, программу TellMe - говорящий Русско-Английский разговорник - программу для тех, кто собирается погостить за бугром или повысить свои знания в английском, теоретический материал по программированию в среде Borland C++ Builder, C# (Windows приложения и ASP.Net Web сайты).

В начало страницы

К началу раздела

На главную страницу


Сайт управляется системой uCoz