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

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

Изменение каталога установки

По умолчанию, программа устанавливается в каталог [ProgramFiles][Производитель (NotepadSoft)]\[ProductName (NotepadCSharp)] (см. рис. 9.46). Для изменения пути в проекте установки щелкаем правой кнопкой на папке Application Folder и меняем свойство DefaultLocation (рис. 9.47).

Изменения каталога установки

Рис. 9.47. Изменения каталога установки

Добавление ключей реестра на компьютер пользователя

Для добавления ключей реестра на компьютер пользователя при установке приложения их следует включить в пакет установки. В окне Solution Explorer нажимаем на кнопку Registry Editor (рис. 9.48).

Добавление ключей реестра

Рис. 9.48. Добавление ключей реестра

В появившемся окне Registry выбираем нужную ветвь реестра и создаем нужный параметр (рис. 9.49).

Добавление ключа в выбранный раздел реестра

Рис. 9.49. Добавление ключа в выбранный раздел реестра

При установке приложения созданный ключ будет добавлен в реестр компьютера пользователя.

Добавление публичных сборок в GAC

При создании нового проекта установки папка Global Assembly Cache скрыта по умолчанию. Для отображения этой папки в окне File System щелкаем правой кнопкой мыши на File System on Target Machine и выбираем Add Special Folder\Global Assembly Cache Folder. На появившейся папке снова щелкаем правой кнопкой и выбираем один из трех вариантов — конечный результат указанного проекта, файл или сборку из GAC данного компьютера (рис. 9.50).

Выбор источника сборки

Рис. 9.50. Выбор источника сборки

При выборе сборки из GAC (Assembly) появляется список сборок, из которого следует выбрать нужные (рис. 9.51).

Добавление сборки из GAC данного компьютера

Рис. 9.51. Добавление сборки из GAC данного компьютера

При установке программы выбранные сборки автоматически будут добавлены в GAC на компьютере пользователя.

Добавление библиотеки .NET Framework

Скорее всего, на компьютере пользователя не будет библиотеки .NET Framework, необходимой для работы приложения, которое написано на C#. Пакет установки .NET Framework — размером4Размер может варьировать в зависимости от версии библиотеки и количества включенных в него компоненттов. Я имею в виду версию .NET Framework 1.1. около 23 Мб, называется dotnetfx.exe. В проекте в список зависимостей проекта автоматически включается файл dotnetfxredist_x86_enu.msm, который по умолчанию отмечен как исключенный (excluded) из результирующего пакета установки (рис. 9.52).

В список зависимостей проекта установки входит файл библиотеки

Рис. 9.52. В список зависимостей проекта установки входит файл библиотеки

Однако при снятии галочки Exclude и попытке включения библиотеки в пакет установки возникает ошибка:

dotNETFXRedist_x86_enu.msm must not be used to redistribute the .NET Framework.  
Please exclude this merge module.

Скорее всего, вначале предполагалось включать таким образом .NET Framework в состав инсталляций Но сейчас этот merge module используется только с одной целью: он предотвращает автоматическое включение в проект некоторых DLL, входящих в CLR.

Итак, сейчас .NET Framework не может быть объединен с пакетом установки вашей программы непосредственно в среде Visual Studio .NET. Однако существует несколько способов включения библиотеки в состав дистрибутива.

При компиляции пакета установки в папке Release проекта создается три файла – NameApplication.msi, Setup.exe и Setup.ini. NameApplication.msi — это основной файл Windows Installer 2.0, содержащий все необходимые для установки приложения файлы. Setup.exe — программа, предназначенная для запуска файла .msi. С помощью этого файла устанавливается дополнительное программное обеспечение, необходимое приложению. И, наконец, Setup.ini — это конфигурационный файл приложения Setup.exe.

Установка приложения не начнется, пока Windows Installer не определит5Для получения информации об установленных версиях .NET Framework используем реестр HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework, ключ InstallRoot — директория, куда устанавливается .NET Framework — обычно это C:\WINDOWS\Microsoft.NET\Framework. Если такого каталога на диске нет, то .NET Framework не установлен. HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\Policy ключи вида \vX.X содержат информацию об установленных версиях .NET Framework на компьютере пользователя установленный .NET Framework. Этот порядок можно изменить с помощью утилиты bootstrapper.exe, заменяющей существующий setup.exe на новый, который позволяет устанавливать .NET Framework на компьютер пользователя. Свойству Bootstrap проекта установки устанавливаем значение None (см. рис. 9.37) — в результате при компиляции создастся только файл .msi. Теперь извлекаем из архива утилиту bootstrapper.exe в папку Release c файлом .msi. Также в эту папку помещаем пакет установки .NET Framework — dotnetfx.exe. В результате в папке будет четыре файла — .msi, setup.exe, setup.ini и dotnetfx.exe. Открываем файл setup.ini и меняем его содержимое следующим образом:

  • "Msi=FxCopSourceSetup.msi" изменяем на Msi=ВашMSIФайл.msi;
  • удаляем комментарий со строки 'FxInstallerPath=c: (нужно удалить символ ') и изменяем на расположение файла dotnetfx.exe. Например, если dotnetfx.exe расположен в том же каталоге, что и setup.exe, то вместо адреса нужно написать FxInstallerPath=.

После завершения этих действий пакет установки будет готов. Если Windows Installer обнаружит предыдущую версию .NET Framework или не обнаружит ее вообще на машине пользователя, то он ее обновит или установит.

На диске, прилагаемом к книге, вы найдете архив утилиты bootstrapper.exe (Code\Glava9\ bootstrapper.exe).

Я не привожу утилиту dotnetfx.exe из-за ее значительного размера, ее новую версию можно найти на официальном сайте Microsoft6Я также не привожу ссылок — версии утилит быстро меняются и ссылки устаревают, воспользуйтесь поиском на сайте Microsoft..

Другие библиотеки для работы приложения — MDAC, Jet и Crystal Reports

К сожалению, библиотека .NET Framework представляет не исчерпывающий набор компонент для работы приложения. Если приложение использует доступ к базе данных (используется пространство имен System.Data), потребуется также установка Microsoft Data Access Components (MDAC). MDAC распространяется в виде файла установки mdac_typ.exe. Для работы отчетов Crystal Reports (CR) на машине клиента должен быть установлен Crystal Reports Free Runtime — набор библиотек и лицензия. Компоненты, так же как и сама библиотека .NET Framework, периодически обновляются, актуальные версии доступны на сайте Microsoft.

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

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

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

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

Затем:

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

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

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

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