Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Автоустановка .NET при инсталляции приложения, (под все версии Windows) 
:(
    Опции темы
mr.DUDA
Дата 7.6.2005, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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:
Цитата

      \setup.exe    ("инсталлятор", выполняющий всю работу)
      \main
            \setup.exe     (реальный, "основной" инсталлятор, созданный в Install Shield)
            \ ...      (прочие файлы "основной" инсталляции)
      \distr
            \mdac   (инсталлятор MDAC 2.8)
                   \mdac_typ.exe
            \msi30  (инсталлятор Microsoft Installer 3.0, кот-й требуется для установки .NET 2.0)
                   WindowsInstaller-KB884016-v2-x86.exe
            \ie6sp1 (инсталлятор Internet Explorer 6.0 SP1)
                   \ ...
            \win2000sp4 (инсталлятор Service Pack 4 для Windows 2000)
                   \w2ksp4_ru.exe
            \dotnetfx (инсталлятор .NET Framework любой версии)
                   \dotnetfx.exe

В сумме выходит около 250 Мб, из-за поставки в дистрибутиве 4-го сервис пака для Win2000 и IE6 (для Win98). Разумеется, такой "пухлый" дистрибутив годится только для распространения на CD, что идеально подходит для бизнес-приложений под заказ, но не годится для распространяемых через Интернет "лёгких" программ. Зато на порядок меньше головной боли, не нужно ехать к заказчику и ставить на каждую машину всё, что требуется для инсталляции программы и не нужно писать длиннющих инструкций, которые всё равно никто толком не прочитает smile

Далее, потребовалось написать управляющую программу ("setup.exe" в корневой директории), которая проверяет версию ОС, наличие доступных компонент, устанавливает всё необходимое с автостартом после перезагрузки Windows, и наконец ставит "полезную" программу. Программа и исходники находятся в прилагаемом файле. Компилируется под Visual Studio 2003, проект типа Win32 API Application. Весь исходный текст находится в main.cpp. Пару констант, определяющих настройки, вынесены в самое начало файла.

Если кому-то интересна данная тема, и данный вариант решения проблемы заинтересовал, пишите.
Я отвечу на любые вопросы.

Присоединённый файл ( Кол-во скачиваний: 220 )
Присоединённый файл  SmartSetup.zip 13,15 Kb


--------------------
user posted image
PM MAIL WWW   Вверх
nikf
Дата 7.6.2005, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 6.6.2005
Где: город-герой Жирно вск

Репутация: нет
Всего: 1



если стоит задача написания инсталятора - то это работа с реестром и ничего более. читаем сверяем записываем, а вот если нужно готовое решение : берем InstallShield - и все. ну разумеется полный комплект.. при создании дистрибьютива он сам подсосет из инета нужные MDAC-и и ие..
Цитата
К сожалению, стандартными средствами Install Shield проверить наличие всего необходимого софта невозможно
- мягко говоря странно звучит.. этот проф. пакет прекрасно разбирается во всех версиях винды и их конфигурациях... ну конечно если он не 93го года...

а если твое компактное инет приложение должно удовлетворять всем версиям оси.. 250мегов ты загнул, первый раз слышу про обязательный четвертый сервиспак, но на полсотни мегов вполне реально расчитывать - чудес не бывает.

Это сообщение отредактировал(а) nikf - 7.6.2005, 17:53
PM MAIL   Вверх
arilou
Дата 7.6.2005, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(nikf @ 7.6.2005, 17:37)
при создании дистрибьютива он сам подсосет из инета нужные MDAC-и и ие..

Ключевая фраза - из Инета. Вопрос стоит в том, чтобы интегрировать и автоматизировать установку всех необходимых компонентов до установки самого приложения, и установить из с CD-ROM'а, а не выкачать...

К сожалению, не существует т.н. merge modules, которые бы содержали дистрибутивы .NET, SP'ов, критических обновлений. Поэтому и нужен "bootstrapper", который бы все это добро устанавливал.

В Visual Studio setup так и происходит - пока не поставишь всех обязательных обновлений, ничего не будет.
Цитата(nikf @ 7.6.2005, 17:37)
250мегов ты загнул

Померяй размер сервис-пака...

Это сообщение отредактировал(а) arilou - 7.6.2005, 20:42


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
nikf
Дата 8.6.2005, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 6.6.2005
Где: город-герой Жирно вск

Репутация: нет
Всего: 1



Цитата
Ключевая фраза - из Инета. Вопрос стоит в том, чтобы интегрировать и автоматизировать установку всех необходимых компонентов до установки самого приложения, и установить из с CD-ROM'а, а не выкачать
читать надо внимательно, из инета нужная инфа будет подгружена ПРИ СОЗДАНИИ ДИСТРИБЬЮТИВА, а не при установке программы
PM MAIL   Вверх
arilou
Дата 8.6.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



А сколько стоит InstallShield Professional ты знаешь?
Добавлено @ 18:17
А ты пробовал делать навороченные диалоги для установки?


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
nikf
Дата 8.6.2005, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 6.6.2005
Где: город-герой Жирно вск

Репутация: нет
Всего: 1



$полторы тыщи,
так я не понял мы че инсталяторы пишем или программы?
ну ну.. пакетик геофизических программ нашего предприятия продается за 100000 ре.. так что окупается на трети клиента..
а не нарвится так лопать реестр - это несложно.
PM MAIL   Вверх
mr.DUDA
Дата 9.6.2005, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Для win2000 сервис пака не нужно, как оказалось. Он требуется только при установке студии.

З.Ы. есть уже готовое решение: http://www.codeproject.com/dotnet/dotNetInstaller.asp


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0463 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.