Опубликован: 11.09.2006 | Доступ: свободный | Студентов: 7645 / 472 | Оценка: 4.26 / 3.45 | Длительность: 30:46:00
ISBN: 978-5-9556-0080-2
Лекция 9:

Создание пакетов установки

Создание пакетов установки

Установка программы представляет собой копирование сборок и файлов, необходимых для работы приложения, в определенную папку на компьютере пользователя. При этом также происходит интеграция приложения в операционную систему Windows — добавление иконок на рабочий стол, в меню "Пуск", в контекстное меню правой кнопки мыши. Для слежения за лицензионным использованием программы или сохранением пользовательских настроек приложения следует предусмотреть возможность автоматического внесения изменений в реестр при установке. Если размер программы достаточно велик, файлы подлежат также архивации, и тогда установка программы сопровождается ее извлечением из архива. Первое знакомство пользователя с вашим приложением начинается именно с установки, и поэтому даже если сама программа очень хорошая, но ее трудно устанавливать, большинство пользователей откажутся от ее использования. Установка приложения должна отвечать следующим критериям:

  • Запуск программы установки происходит один раз.
  • Программа установки имеет название Setup.exe или Install.exe, и ее легко найти среди файлов установки.
  • Если программа распространяется на CD, то вставка диска в привод приводит к автоматическому запуску установки либо к появлению заставки, на которой при переходе по гиперссылке начинается установка.
  • Каждый шаг установки предполагает оптимальный вариант по умолчанию.
  • Информация, показанная при установке, необходима и достаточна, и обращение к файлу Readme не является обязательным.
  • Одна программа установки работает на всех поддерживаемых приложением версиях операционной системы.

Практически все крупные пакеты, такие как Microsoft Office или Adobe Photoshop, отвечают этим требованиям.

Распространение приложений, написанных на языке C#, одном из языков платформы .NET, обладает важной особенностью: для работы программы необходимо наличие установленной в операционной системе библиотеки .NET Framework. Достаточно однократного включения в пакет установки этой библиотеки для последующей установки самих приложений платформы .NET в чистом виде, т. е. только файлов, созданных непосредственно вами. Проблема в том, что размер библиотеки .NET Framework и дополнительных утилит может достигать 50-70 Мб, что является одной из причин затруднительного распространения приложений через Интернет. На сегодняшний день .NET Framework 1.1 встроен только в операционную систему Windows 2003 Server family. Однако через несколько лет, с выходом и массовым распространением Windows Longhorn можно ожидать частичного решения этой проблемы — новая версия операционной системы будет содержать в себе библиотеку .NET Framework.

Существует несколько способов переноса готового приложения на компьютер пользователя.

Так называемая установка XCOPY – это простое копирование папки с приложением. Программа будет работать, если на компьютере установлен .NET Framework и ключи реестра не используются. Приложение может содержать только частные и подписанные строгим именем сборки. При подобной установке не происходит автоматической генерации иконок на рабочем столе или меню "Пуск". Для удаления приложения достаточно просто удалить его папку. Этот способ установки неприменим для распространения коммерческих приложений.

Среда Visual Studio .NET предоставляет возможность создания пакетов дистрибутивов, позволяющих пользователю с минимумом усилий устанавливать приложение на свой компьютер. Получаемый в результате файл Windows Installer 2.0 позволяет установить, изменить или удалить приложение с компьютера пользователя. С помощью Windows Installer можно также управлять глобальным КЭШем сборок.

Для распространения одной сборки используются файлы-кабинеты (.cab – files.). Cab-файл должен иметь то же самое имя, что и сборка, находящаяся в нем. Например, если cab-файл содержит сборку Assembly.dll, то он должен называться Assembly.cab. После того как вы создадите cab-файл, его можно будет загрузить используемым приложением, указав его адрес в теге codeBase файла конфигурации.

Итак, существует три вида распространения сборок и приложений. С установкой XCOPY вы сталкивались при использовании готовых приложений с диска, прилагаемого к книге, — копировали их на свой компьютер и запускали exe-файл из папки bin\Debug. Распространение одной сборки — задача, встречаемая при создании патчей (дополнений) к программам и технически выполняемая достаточно просто. Наибольший интерес представляет создание полных пакетов установки, к рассмотрению которого мы и приступим.

Создание простого пакета установки без библиотеки .NET Framework

В качестве исходного приложения для распространения возьмем проект NotepadCSharp, c которым мы работали во "Работа с элементами управления" . На панели инструментов Standard среды Visual Studio .NET расположен список Solution Configurations, значения которого определяют режим компиляции приложения (рис. 9.35).

Панель инструментов Standard и режим компиляции Debug

увеличить изображение
Рис. 9.35. Панель инструментов Standard и режим компиляции Debug

Это режим компиляции, принятый по умолчанию, при его запуске появляется папка bin\Debug, которая содержит, кроме готового exe-файла, отладочную информацию. Приложение, подлежащее распространению, должно состоять только из рабочих файлов, поэтому в списке Solution Configurations выбираем режим Release и снова компилируем приложение. При этом в проекте появится папка bin\Release с готовым приложением.

Пакеты установки можно создавать непосредственно в текущем проекте приложения, но мы сделаем отдельный пакет. Создайте папку и назовите ее NotepadCSharpSetup. Теперь запустите Visual Studio.NET и создайте новый проект в папке NotepadCSharpSetup, тип проекта Setup and Deployment Projects, шаблон — Setup Project, название — NotepadCSharpSetup (рис. 9.36).

Создание проекта установки

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

В окне Solution Explorer щелкаем на названии проекта — NotepadCSharp и затем переходим в окно его свойств, щелкая на вкладку Properties (или нажав клавишу F4) — именно так, а не по щелчку в пункте Properties контекстного меню! Дело в том, что в контекстном меню содержатся свойства самого проекта (рис. 9.37), а в окне Properties — свойства пакета установки (рис. 9.38), которые нам и нужно настроить.

Свойства проекта установки

увеличить изображение
Рис. 9.37. Свойства проекта установки
Свойства пакета установки

Рис. 9.38. Свойства пакета установки

В свойствах самого проекта можно указать название выходного файла (Output file name), тип сжатия (Compression) — та самая архивация, которой подвергают все большие программы и даже цифровую подпись (Authenticode signature). В свойствах пакета установки следует указать имя автора и производителя, сайт продукта и его поддержки, телефоны, — примерный вариант заполнения этих свойств указан на рис. 9.38.

Добавим файл NotepadCSharp.exe, который нам предстоит упаковать. Щелкаем правой кнопкой на папке Application Folder и выбираем пункт Add/File (рис. 9.39).

Добавления файла приложения в проект установки

увеличить изображение
Рис. 9.39. Добавления файла приложения в проект установки

Переходим в папку bin/Release и выбираем файл NotepadCSharp.exe. Добавим ярлыки приложения в пакет — они будут появляться при установке программы на Рабочем столе и в меню "Пуск". Щелкаем правой кнопкой на имени добавленной сборки и выбираем пункт Create Shortcut to Notepad CSharp.exe. Создадим два ярлыка и переименуем их (рис. 9.40).

Добавление ярлыков к приложению

Рис. 9.40. Добавление ярлыков к приложению

Теперь "хватаем" мышью по очереди эти ярлыки и помещаем их в папки User's Desktop и User's Programs Menu (рис. 9.41).

Перемещение ярлыков в папки User's Desktop и User's Programs Menu

увеличить изображение
Рис. 9.41. Перемещение ярлыков в папки User's Desktop и User's Programs Menu

Переходим в папку User’s Desktop и, выделив ярлык, открываем окно его свойств. В поле свойства Icon щелкаем на значение Browse из выпадающего списка, в появившемся окне снова щелкаем на кнопку Browse. В окне Select Item in Project в выпадающем списке "Look in:" выбираем значение Application Folder и щелкаем на ставшую доступной кнопку Add File… . Иконка приложения расположена в каталоге NotepadCSharp\Icon\README.ICO, выбираем ее и закрываем окна Select Item in Project и Icon. Проделываем то же самое для изображения иконки папки User's Programs Menu.

В процессе установки будет появляться несколько диалоговых окон, созданных по шаблону. Изменим немного интерфейс этих окон и текст на них. Для этого щелкаем в окне Solution Explorer на кнопке User Interface Editor (рис. 9.42).

 Кнопка User Interface Editor и деревья  диалоговых окон

Рис. 9.42. Кнопка User Interface Editor и деревья диалоговых окон

Появляется два дерева диалоговых окон, мы будем редактировать формы дерева Install. Выделяем форму Welcome и переходим к его свойствам. Свойство BannerBitmap позволяет добавлять баннер размером 497х69 пикселей на диалоговое окно. В поле значения этого свойства выбираем Browse — и перед нами появляется уже знакомое окно Select Item in Project, добавляем в это окно баннер Bannersetup.bmp из папки NotepadCSharp\Icon. Переходим к надписям, которые будут располагаться на форме. В свойстве CopyrightWarning приводится текст предупреждения об авторских правах, оставим его без изменений — вы можете изменить его в своем проекте. В свойстве WelcomeText заменяем слова [ProductName] на NotepadC#. Текст надписей оставим на английском языке – кириллица отображается некорректно. В свойствах BannerBitmap следующих форм InstallationFolder, Confirm Installation и Progress также устанавливаем баннер Bannersetup.bmp. В последней форме изменяем текст свойства UpdateText на Thank you for your choice! и снова устанавливаем баннер. Устанавливаем режим Release и компилируем проект. Переходим в папку NotepadCSharpSetup\NotepadCSharp\Release и запускаем файл установки Setup.Exe (рис. 9.43).

Форма Welcome пакета установки

Рис. 9.43. Форма Welcome пакета установки

После выполнения всех шагов мастера программа устанавливается и становится доступной с рабочего стола (рис. 9.44), из меню "Пуск" (рис. 9.45) и рабочей папки приложения (рис. 9.46).

Иконка приложения на Рабочем столе

Рис. 9.44. Иконка приложения на Рабочем столе
Иконка в меню пуск

Рис. 9.45. Иконка в меню пуск
Иконка в рабочей папке

Рис. 9.46. Иконка в рабочей папке

Удалить программу можно с помощью стандартной утилиты "Установка и удаления программ" операционной системы Windows.

На диске, прилагаемом к книге, вы найдете проект установки (Сode\Glava9\NotepadCSharpSetup\NotepadCSharp\NotepadCSharp.sln).

Елена Дьяконова
Елена Дьяконова

При нажатии на Сумма в примере ArbitraryMethod из Лекция 7, VS 2013 выдается ошибка: 

Необработанное исключение типа "System.InvalidOperationException" в System.Windows.Forms.dll

Дополнительные сведения: Недопустимая операция в нескольких потоках: попытка доступа к элементу управления "lblResult" не из того потока, в котором он был создан.

Затем:

Необработанное исключение типа "System.InvalidOperationException" в mscorlib.dll

Дополнительные сведения: Для каждой асинхронной операции метод EndInvoke может вызываться только один раз.

Александр Сороколет
Александр Сороколет

Свойство WindowState формы blank Maximized. Не открывается почемуто на всё окно, а вот если последующую форму бланк открыть уже на макс открывается :-/