![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Наверное, если не все то некоторые из разработчиков .NET сталкивались когда-то с такой проблемой, как инсталляция .NET Framework на машине, где будет работать .NET-приложение. На форумах RSDN советуют зашивать в свой "setup.exe" так называемый bootstrapper, который по идее должен скачать Framework из Интернет или распаковать из ресурсов, и установить до запуска основной инсталляции. Но проблему это не решает. Ведь для установки .NET Framework требуется наличие на машине вполне определённого набора установленного софта, в зависимости от версий Windows. К примеру, для Windows 98 требуется наличие установленного IE выше 5.0, для всех версий Windows требуется наличие MDAC 2.6 и выше, а для Windows 2000 - вообще требуется Service Pack 4. К сожалению, стандартными средствами Install Shield проверить наличие всего необходимого софта невозможно, а установить его - тем более.
Всё вышеописанное подвигло лично меня на поиски подходящего решения проблемы инсталляции .NET, такого, чтобы запустив один единственный "setup.exe", можно было поставить всё сразу - и требуемый софт, и .NET Framework, и "полезную" программу. Была разработана следующая структура инсталляционного дистрибутива, не привязанная к какой-то конкретной версии Windows и .NET Framework:
В сумме выходит около 250 Мб, из-за поставки в дистрибутиве 4-го сервис пака для Win2000 и IE6 (для Win98). Разумеется, такой "пухлый" дистрибутив годится только для распространения на CD, что идеально подходит для бизнес-приложений под заказ, но не годится для распространяемых через Интернет "лёгких" программ. Зато на порядок меньше головной боли, не нужно ехать к заказчику и ставить на каждую машину всё, что требуется для инсталляции программы и не нужно писать длиннющих инструкций, которые всё равно никто толком не прочитает Далее, потребовалось написать управляющую программу ("setup.exe" в корневой директории), которая проверяет версию ОС, наличие доступных компонент, устанавливает всё необходимое с автостартом после перезагрузки Windows, и наконец ставит "полезную" программу. Программа и исходники находятся в прилагаемом файле. Компилируется под Visual Studio 2003, проект типа Win32 API Application. Весь исходный текст находится в main.cpp. Пару констант, определяющих настройки, вынесены в самое начало файла. Если кому-то интересна данная тема, и данный вариант решения проблемы заинтересовал, пишите. Я отвечу на любые вопросы. Присоединённый файл ( Кол-во скачиваний: 220 )
SmartSetup.zip 13,15 Kb-------------------- ![]() |
|||
|
||||
| nikf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 6.6.2005 Где: город-герой Жирно вск Репутация: нет Всего: 1 |
если стоит задача написания инсталятора - то это работа с реестром и ничего более. читаем сверяем записываем, а вот если нужно готовое решение : берем InstallShield - и все. ну разумеется полный комплект.. при создании дистрибьютива он сам подсосет из инета нужные MDAC-и и ие..
а если твое компактное инет приложение должно удовлетворять всем версиям оси.. 250мегов ты загнул, первый раз слышу про обязательный четвертый сервиспак, но на полсотни мегов вполне реально расчитывать - чудес не бывает. Это сообщение отредактировал(а) nikf - 7.6.2005, 17:53 |
|||
|
||||
| arilou |
|
||||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
Ключевая фраза - из Инета. Вопрос стоит в том, чтобы интегрировать и автоматизировать установку всех необходимых компонентов до установки самого приложения, и установить из с CD-ROM'а, а не выкачать... К сожалению, не существует т.н. merge modules, которые бы содержали дистрибутивы .NET, SP'ов, критических обновлений. Поэтому и нужен "bootstrapper", который бы все это добро устанавливал. В Visual Studio setup так и происходит - пока не поставишь всех обязательных обновлений, ничего не будет.
Померяй размер сервис-пака... Это сообщение отредактировал(а) arilou - 7.6.2005, 20:42 |
||||
|
|||||
| nikf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 6.6.2005 Где: город-герой Жирно вск Репутация: нет Всего: 1 |
|
|||
|
||||
| arilou |
|
|||
![]() Великий МунаБудвин ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2646 Регистрация: 15.7.2004 Где: город-герой Минск Репутация: 21 Всего: 61 |
А сколько стоит InstallShield Professional ты знаешь?
Добавлено @ 18:17 А ты пробовал делать навороченные диалоги для установки? |
|||
|
||||
| nikf |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 127 Регистрация: 6.6.2005 Где: город-герой Жирно вск Репутация: нет Всего: 1 |
$полторы тыщи,
так я не понял мы че инсталяторы пишем или программы? ну ну.. пакетик геофизических программ нашего предприятия продается за 100000 ре.. так что окупается на трети клиента.. а не нарвится так лопать реестр - это несложно. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Для win2000 сервис пака не нужно, как оказалось. Он требуется только при установке студии.
З.Ы. есть уже готовое решение: http://www.codeproject.com/dotnet/dotNetInstaller.asp -------------------- ![]() |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |