Как стать автором
Обновить

Комментарии 107

Не совсем понятно замечание о "реальной кроссплатформенности". Чтобы устанавливать программу на разные платформы, нужна либо некоторая одинаковая среда исполнения (JVM), либо набор дистрибутивов внутри инсталлятора на разные платформы, а это расточительно.
Я к тому, что я подобных кроссплатформенных решений не видел, только на основе JVM. Ну а это очень неудобно.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
эээ а вам знакомо такое понятие, как дружественный интерфейс и такое понятие как пользователь - блондинко?
А если у программы много компонентов, из которых пользователю нужны не все? (А винт не резиновый)
А если у программы есть фундаментальные опции? А если программа должна вступить в двустороннее взаимодействие с другими программами (т.е. что-то прописать в реестре, в т.ч. и не в ветвях чужих программ, что-то скопировать в чужие папки и т.д.). Конечно все это можно делать при первом запуске, но тогда первый запуск и будет той же самой инсталяцией, только с массой неубодств.
А если у программы 10 экзешников и вообще непонятно, какой запускать? Все же инстяляторы придуманы не зря.
ну в этот отношении мне по душе тот подход что на маке, для установки достаточно скопировать )) нечто, что пользователь видит как исполняемый файл, а на самом деле папку, в которой лежат все необходимые файлики и компоненты... для пользователя вполне прозрачно, двойным кликом папка не открывается а запускается приложение, но при этом всегда можно залезть вовнутрь и чегонить поправить. Например (если приложение написано по рекомендациям Apple и знаешь куда лезть) добавить собственную локализацию или поправить настройки )))
Папка с автораном? Это частичное решение проблемы, но не полное. Она не решает проблемы выборочной установки, настройки, программ, состоящих из нескольких приложений (например тот же офис, или визуал студия), не решает проблемы неповторяющегося хранения shared компонентов (а место на винтах-то надо экономить).
Все же я пока не вижу универсальной замены процедуре инсталяции для сложных продуктов.
Мне больше нравятся решения по типу джава-вэб-старт. Копируешь на машину (именно копируешь) минимальный каркас. Указываешь на сервер. А дольше каркас сам наполняется необходимыми модулями. Желательно с учетом прав доступа к объектам
довольно стабильный, но скрипт для автоматической сборки дистрибутива я писать задолбался... очень уж там неудобная система pid-ов в файли проекта.
Их что, кто-то читает, эти лицензионные соглашения? :) Я за 9 лет прочёл всего парочку по диагонали, и то потому что они умещались в пару абзацев.

Хотя наверное разработчикам важно быть тут формальными, да? Чтоб не засудили... Или чтобы засудить самим.
Вы это зря. С лицензионным соглашением следует быть достаточно осторожным, там много всего интересного попадается. К примеру, отказ разработчика от ответственности, или Ваше право ставить продукт на рабочем компьютере и на домашнем.

Я вообще стараюсь читать. Ну и быть формальным, правильно :))
ну к отказу от ответственности не привыкать — у меня большая часть ПО такая, а вот про разделение домашнего/проф. использования — это уже для меня актуальнее

и кстати это отдельная интересная тема — ведь значительная свободного софта не может использоваться на рабочем месте..
свободный софт потому и называется свободным, что дает свободу в том числе использования. Не нужно путять свободный софт и всякий freeware, adware, msware..
Поправьте меня, если я ошибаюсь, но в слове freeware free значит свободный.
поправляю, free в freeware означает бесплатный. со свободным ПО это никак не соотносится
Позвольте не согласиться.

Free не означает бесплатный. Free в английском языке — свободный.

В частности, бесплатный — free of charge.
я то могу позволить. но вот словарь не позволит. http://www.merriam-webster.com/cgi-bin/dictionary?book=Dictionary&va=free пункт 10. http://www.askoxford.com/concise_oed/free пункт 7. "Free" - "бесплатный". Freeware - бесплатный софт. Free (Open Source) Software - (открытый) свободный софт
Это слово является омонимом: может означать и "свободный", и "бесплатный".
В англ. языке это слово имеет двойное толкование.

Free software is a matter of liberty, not price. To understand the concept, you should think of free as in free speech, not as in free beer.

http://www.gnu.org/philosophy/free-sw.html
Терминальная OS/2 программа Zap-O-Com при установке уточняла, успел ли я прочитать лиц. соглашение за 3 секунды.
Не знаю, на сколько это будет актуально со всеобщим переводом win программ на C#, но статья познавательная. Хотя я в свое время делал дистрибутив в виде sfx архива и пост-скриптами.
Вы хотели сказать на .NET
Когда оно еще случится... Обещали этот "всеобщий перевод" еще лет ндцать назад. А воз и ныне там. Никто не будет переписывать всякие фотошопы с пикадами на дотнет. Максимум как в автокаде будет — понаставят рюшечек для галочки.
НЛО прилетело и опубликовало эту надпись здесь
Paint.NET как пример существует тоже очень-очень давно.
Так что пока ситуация такая: .Net на десктопе используется в основном для проектов, изготовляемых для конкретного корпоративного заказика (т.е. занял нишу, где раньше жили Delphi, Visual Basic, в некоторой мере Java, в некоторой мере FoxPro),
в массовых продуктах его нет, даже у MS.
Вы в курсе, что VS 2005 и VS 2008 написаны на С# практически целиком, только потом переведены в native-code? Кроме того, SQL Server 2005 (Management Studio) - целиком на C#.

Microsoft давно уже использует .NET, только сборки они делают native.
Не могли бы вы пояснить свою фразу. Как возможно перевести из C# в нативный код? И с чего Вы взяли что микрософт так поступил со студией? Очень интересно =)
Вообще по поводу перевода из .NET в native мы общались на форуме gotdotnet.ru с товарищем под именем SergeyP.

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

За подробностями отправлю на gotdotnet.ru или к Александру Ложечкину.
Вас наверное не затруднит поднять ссылку и запостит ее здесь =)
Не надо вводить народ в заблуждение голословными высказываниями и бросаться громкими именами, они Вас не поддержат.
Что на чем пишется - это не так важно. Важно аргументировать свои слова "Вы в курсе, что VS 2005 и VS 2008 написаны на С# практически целиком, только потом переведены в native-code? " .Т.к. людей начинающих осваивать .NET это может направить по неверному пути.
Ссылку - затруднит, я еще раз говорю, что это было несколько лет назад и я ее попытался найти - не смог.

Поверьте мне, есть способы нормально перевести из managed в native, просто подгружая, к примеру, managed библиотеки в native код.

См. картинку http://maniaque.ru/images/habr/vs.gif
Я прекрасно знаю и как грузить .NET из native код и как native из .NET. Это не ответ на вопрос "как переводить C# код в native". 'Просто подгружая' это совсем другое, так можно сказать что любой язык можно перевести в нейтив код понятный процессору.
Еще раз рассказываю. Чтобы не давать возможности отладки самой студии отладчиком под .NET, обертка - unmanaged.

А про инструмент ngen.exe Вы не в курсе? ;)
К сожалению (из-за кармы?) я могу писать только один комент в 5 минут, так что все это не быстро =)
1)Т.е. я не смогу приатачить дебагер к студии и дебажить managed код? Это чушь. В этом легко можно убедится написав тот-же плагин для студии на C#.
2)Если честно я думал вы мне про него сразу скажете =)
Если грубо, то Ngen служит для заблаговременной компиляции IL кода в JIT. Обычно это делается 'на лету'.
У меня сложилось впечатление что под переводом из C# в native вы понимаете обычную работу JIT компилятора.Это так?
*IL кода в JIT. описка. В native.
Да, если Вы напишете что-то на .NET, а потом создадите образ ngen, то чем Вам это не native-код?..
Тем, что он и без ngen станет native. Только позже. Ngen тут только процесс ускорит, что даст пользователя увеличение перфоманса при запуске программы и уменьшение при инсталяции ( обычно инсталлер вызывает ngen). Поэтому говорить о том, что в микрософте догадались перевести C# в нейтив нету смысла. Любая программа таким образом рано или поздно будет нейтив кодом, те же самые скрипты (на любом языке) интерпритируются компилятором и выполняются уже в нейтив коде =) А образ сгенеренный ngen без самой сборки некому нафиг не нужен.
Обычно под темой перевода C# в нейтив подразумевают возможность выполнения .NET модулей без самой среды.

Чтобы два раза не вставать - ответ на второй комментарий: Да, пишется. Я с этим не спорю.
*интерпритируются компилятором - интерпритатором.Слажал =)
И да, по поводу студии я не прав, только что получил письменное подтверждение. Тем не менее, все равно достаточное количество инструментов пишется на .NET самим Microsoft ;)
А с Singualrity знакомы?
Да, а что?
Это я не Вам, ошибся комментом :))
НЛО прилетело и опубликовало эту надпись здесь
Главное, что вы меня поняли. C# я написал, потому что у нас он гораздо популярнее, чем vb.net. А не счет фотошопов, вы уж извините, класс не тот. Люди, которые пишут фотошоп не забивают себе голову созданием дистрибутивов. Кроме того, если вы знакомы с нетовской платформой, то, вероятно знаете, что можно в нете вызывать неуправляемый код без проблем. Так что вопрос о переписке ядра не будет стоять вообще.
Помимо поделий от МС есть еще близкие моему сердцу Delphi и Chrome.
Что же касается вызова неуправляемого кода, то это и есть камень преткновения, который гарантирует, что никакого 100% перехода на дотнет не будет. Никогда.
а я и не говорю, что .net панацея. Ничем не лучше и не хуже всего остального.
Да в том-то и дело, что идея-то хороша. Но вот толку с нее...
А с Singularity знакомы? Переход на 100% будет тогда, когда эта операционка хоть немного поднимется. А то, что это будет, сомнений не вызывает :)
О массовом переходе на Висту тоже у многих сомнений не было. Ан нет...
>>А нужно ли инсталлировать?
>>...Для Веб-приложений он никакого смысла не имеет...
Имеет. Установить необходимые плагины для работы приложения. Но по возможности, необходимо сократить количество "инсталляций" так как это затрудняет работу/доступ рядового пользователя. Это кстати, очевидный и всем известный "минус" Flash этапы развития которого тормозит необходимость установки со стороны пользователя новой версии плеера для работы новых "фич" платформы.
Вопроса инсталлировать или нет я касался когда активно учавствовал в русском gamedev сообществе. Вопрос в том случае возник на почве того, что на приставках путь пользователя прост: вставил диск/скачал игру(сейчас, по средствам онлайн сервисов) -> запустил игру, а на PC: вставил диск/скачал дистрибутив -> запустил установку -> прошел этапы программы установки(неотъемлемый этап) -> запустил игру. Возник вопрос есть ли возможность сделать жизнь игрока "проще". Пришли к тому, что упрощение жизни одного(пользователя/игрока) приведёт к усложнению жизни второго(разработчика) и в совокупности в общей ситуации, сейчас, не рентабельно.

По поводу лицензии - ее, большинство как показывает практика не читает и если это единственный повод вводить инсталлятор то оно того не стоит, а показывать лицензию перед первым запуском программы "ради галочки" (чтобы было чем оперировать в конфликтных ситуациях) очень хорошее решение, причем применяемое такими крупными компаниями как, например AVID в том же Softimage|XSI
не только ради галочки, так как большинство все равно ее не читает, то в лицензию можно вставить что-нибудь по типу "за использование программы вы должны мне свой правый глаз" :) претенценты с пасхальными (положительного толка) в лицензионных соглашениях уже были.
Важная особенность Windows Installer ещё в том, что с его помощью можно изготовлять обновления (patches) для уже установленных программ (в том числе инкрементальные обновления). Кроме того, он предоставляет программный доступ к инсталляционной базе, так что можно проверить что инсталлировано из самой программы (например, чтобы правильно отобразить какие-нибудь меню).

И первое и второе можно реализовать и самому, конечно, но лучше когда это делает инсталлер, так как эти задачи тесно переплетены с задачами инсталляции.

Кроме того, мне кажется, совершенно зря не упомянута технология ClickOnce (http://msdn2.microsoft.com/en-us/library/t71a733d(VS.80).aspx — теги вставлять не могу ввиду отсутствия хоть какой-то кармы). Она не лишена недостатков но, выбирая инсталлятор, недопустимо о ней не знать. Если она подойдёт для конкретного приложения, то заказчик, скорее всего, будет в восторге от того, как она работает.
Если сможете осветить ClickOnce - давайте, присылайте мне, я публикую от Вашего имени и карма будет, я уверен :) Я знаю о существовании самой технологии, но ни разу ее не пробовал.
ClickOnce насколько мне известно монолитен и обновление с помощью него трудно развернуть. Будет качать целиком тяжеленный инсталлер.

Сидел на студийном вин-инсталере, пересел на NSIS
Я использовал ClickOnce и при выпуске новой версии на компьютеры пользователей докачивалась только разница между версиями, которая волшебным образом генерировалась ClickOnce технологией. То есть новая версия целиком не закачивалась.
НЛО прилетело и опубликовало эту надпись здесь
Хотите утилиту, которая по msi-файлам выдает информацию о них?

P.S. 2 гига по меркам современных винчестеров — это как-то мелочно :)
НЛО прилетело и опубликовало эту надпись здесь
так же расстраивает. однако, этот каталог необходим, т.к. в нем лежат:
1) сами msi пакеты(без содержания устанавливаемых файлов)
2) те самые патчи
нужно все это дело для работы таких фич как repair и modify, чем мне msi и нравится, ибо нигде больше нормально работа этих фич не реализована. Другое дело, что разработчики иногда не заморачиваются с грамотной реализацией этих фич(тупо забывают добавить кастом экшены, например) :)
Чем вам нравятся "инсталируемые" программы? Почему-бы не делать портабельные программы, не требующие инсталяции, которые могут работать например с флешки?
Есть свои плюсы и минусы у подходов с инсталлированием и без. Инсталлятор, например, позволяет выбрать устанавливаемые компоненты и установить только их на компьютер (скажем, при установке с CD). Если бы у нас была программа не требущая инсталляции, пользователю самому пришлось бы разбираться, какие файлы копировать, а какие нет. Рядовому пользователю, не связанному с компьютерной индустрией, такое окажется, скорее всего, не под силу.
100% рядовых пользователей выбирают "установку по-умолчанию", так есть-ли смысл в выборе пакетов?
Опять люди начали говорить за всех. Я знаю по меньшей мере 3 человек, которые стараются сами выставлять устанавливаемые компоненты. (Пример полезности этого действия установка Nero, там много чего можно поотрубать..)
Да-да! Я _всегда_ выбираю "кастом". Просто для того, что бы иметь представление о структуре программы, наборе отделимых "пакетов". И очень огорчаюсь, когда вижу только возможность выбора "нестандартного" каталога для установки.
А что если программа представляет из себя для пользователя один единственный файл который он запускает/переносит/удаляет. Соответственно пользователю не надо совершать действий описанных вами.
Внутри файл это какой либо аналог самораспаковывающегося архива. Временные и файлы созданные в процессе использвания программы хранятся в системных и пользовательских директориях да в общем-то можно их даже при закрытии программы запаковывать в тот же архив.
Тогда уж стоит упомянуть про Rar SFX.
Если "нам" — профессионалам в области IT, то мы сумеем совладать с самыми экзотическими и идиотскими случаями. А нравится нам такое удобство, для которого разработчикам ПО и программистам ещё пахать и пахать.

А если "нам" — простым пользователям, то мы умеем только кликнуть на ссылку и запустить скачавшийся файл (даже без сохранения). После этого мы хотим, чтоб у нас появились иконки на рабочем столе и в меню Старт, а ещё мы хотим, чтоб всё, что мы установили, было бы в списке устанновленных программ — для ремонта, если что-то сломалось, и для удаления. Про флешку и портабельные программы — на флешке мы храним док-файлы, никаких программ мы с неё не запускаем, да и не умеем, честно говоря. И вот нас таких, кстати, подавляющее большинство :)
Эх, Microsoft повел пользователей по ложному пути. Инсталяция программы оправдана только в одном случае - когда нужно "привязать" программу к определенному компьютеру. Во всех других случаях пользователь должен понимать куда он сохраняет программу и как ее удалить.
Так он и понимает. Для пользователя компьютер — бытовой прибор. Этот прибор что-то умеет, потому что в нём есть какие-то программы. Соответсвенно есть кнопки "добавить программу в компьютер" и "убрать программу из компьютера". Вот и вся модель компьютера и программ, как её видит обычный человек.
Эх, Ваши бы слова да в уши "разработчикам" всяких программулек от пенсионных фондов и налоговых... Какие юзабилити, какие инсталляторы?.. :-)))
1) Не всякая программа может работать без инсталляции. Например, если она использует COM/DCOM или устанавливает службы/драйвера, то без регистрации в системе не обойтись.
2) Не всякую программу можно переность с одной платформы на другую на флешке. О какой тут портабельности речь?
на сколько я понимаю, но могу ошибаться, речь здесь идет не только об абсолютных решениях "для всех" но и о частных случаях. Почему программы которые работают после сноса системы (причем не маленькие утилитки а большой профессиональный софт) без повторной инсталляции должны обременять пользователя Первичной инсталяцией, если есть возможность этого не делать.
За примерами далеко ходить не буду, продукты Macromedia (некоторые/многие может быть все) , не требовалось устанавливать после переустановки винды а достаточно было перекинуть заново ярлыки в панель быстрого запуска
Да ради бога — кто ж спорит, что есть программы, которые "все свое носят с собой и ничего не просят"? Да, у них есть конфиг-файл рядом с exe-шником и они не зависят от реестра. Да, они не пользуются COM-компонентами (кроме, возможно, системных) или регистрируют их самостоятельно.
Но ведь не все такие. И не всегда это приемлемо. И нет гарантий, что у программы все получится воссоздать для работы без переустановки.
Как говорится, лучше перебдеть, чем недобдеть :)
Еще раз повторюсь - "инсталяция" программ это стереотип навязанныйй Microsoft. Попробуйте мыслить здраво - любую программу можно сделать переносимой (неинсталируемой).
Зря вы так выделяете Microsoft, это было и до них, и все так делают. Отсутствие MS как компании ничего бы не изменило.

Кстати, навязать Microsoft мечтает именно другой стереотип — пользование программами как сервисами, по подписке. Да не получается у них.
Именно этим я и пытаюсь заниматься — мыслить здраво.

Стереотип, которым грешат и пользователи, и многие разработчики ПО — это тот факт, что программа будет использоваться пользователем с администраторскими правами. Так вот — это ошибка. В реальной жизни у программы скорее всего не будет прав ни на инсталляцию компонентов/драйверов, ни на прописывание в автозагрузку, ни даже на запись в свою собственную папку. Именно для этого и предназначен инсталлятор — делать работу по подготовке системы к запуску программы.

Кроме того, не следует забывать про вторую не менее важную функцию инсталлятора — удаление программы. Тут есть действия, которые выполняются уже после физического удаления программы с диска. Кто, как не инсталлятор, сделает их за программу?
имхо, инсталлятор нужен не всегда. например, абсолютно не вижу необходимости в инсталляторе, когда программа никаких дополнительных библиотек не использует, в реестр ничего не пишет и минимально весит. тогда, я думаю, логичнее в архив просто ее паковать, а лицензию писать в текстовичок. неоднократно встречал обратное. ну и не перегружать всякими дополнительными фичами, типа картинок с подписями "какая крутая эта программа и что вы сможете с ней делать" (ведь если пользователь решил ей воспользоваться, он должен знать, зачем та или иная программа используется), а подобную информацию вынести в tips. И вообще, имхо когда процесс установки начался, ничего кроме прогресс-бара быть не должно (типа "какие файлы копируются" "что сейчас делается" и прочая.
Есть ряд программ, которые предлагается скачать либо в архиве, либо с инсталлятором.
Кстать, насчёт, что там копируется: имхо, лучше как у NSIS - не хочешь смотреть, будет прогресс-бар, хочешь - жмёшь на кнопку, получаешь список файлов.
Разумеется, что вопрос выбора системы инсталяции стоит перед разработчиками под Windows — я не особо знаком с системой установки в остальных операционных системах, знаю только магическую команду make install и про pkg-add. Поэтому буду рад, если кто-то осветит эту тему с той стороны.

В Linux/BSD никаких инсталляторов у индивидуальных приложений нет. Существует два основных способа установки приложений:

  1. С сайта программы выкачивается архив с исходниками, распаковывается, читается файлик README и/или INSTALL, и выполняются описанные в нём инструкции (которые скомпилируют и установят программу). Как правило все программы устанавливаются одинаковой последовательностью команд, так что этап чтения README зачастую пропускается и установка сводится к механическому выполнению этих 3-х команд. Основной недостаток этого метода в том, что деинсталлировать программу зачастую непросто.
  2. Производители вашего дистрибутива Linux уже позаботились для каждого из ~10000 доступных приложений написать установочный скрипт, поэтому установка сводится к тому, что вы даёте одну команду: установить приложение X, и система сама выкачает, при необходимости откомпилирует, и установит это приложение. В этом случае система отслеживает все установленные приложения и позволяет легко их обновлять или деинсталлировать.


Что касается лицензий, то обычно лицензия лежит в архиве с приложением в файлике LICENSE, и предполагается что тот, кому она интересна, зайдёт в файлик и её прочитает. :) При установке вторым методом вы архива с приложением не видите, но обычно файлик LICENSE при установке копируется в каталог /usr/share/doc/ваше_приложение/, так что желающие изучить лицензию имеют такую возможность.
Как ни странно, но в некоторых линукс приложениях есть инсталлятор, например Softimage|XSI там полноценная инсталлятор с GUI возможно это связано с мультиплатформенастью, не уточнял.
также всевозможные игры от id, драйвера от nvidia и многое другое имеет инсталляторы. Но это исключение из правила, вернее, из философии.
Помню kylix2, который на древнем редхате ставился шелл-скриптом, а на чуть более свежем мандрейке - через гуи, т.к. производитель не стал задумываться над тем, что к гуи нужны ещё и библиотеки, позволяющие это добро отобразить (вроде бы, там был специфический qt).
В то же время, демки ныне покойной Loki ставились из хорошего gui и отлично работали (и деинсталлятор даже был).
В основном такие вещи, как инсталляторы бывают у коммерческих приложений, для опенсорса обычно ни к чему - всё ставит утилита из дистрибутива (rpm, apt, pacman, emerge, etc), но пару раз видел и опенсорсные инсталляторы (см. freshmeat), даже некоторые пришлось использовать, поскольку софт с ними поставлялся.
в линуксе установка программ - узкое место. установка из исходников может осложнится выполнением зависимостей, минус установки из репозитария - не факт, что версия программы последняя. Кроме того, у меня в opensuse два репозитория - официальный и packman. в официальном xine поддержка dvd исключена, в пакмановской сборке - включена. при обновлении выкачивается xine из оффрепозитория и естественно все "слетает", приходится вручную переставлять xine. Несомненный плюс - в большинстве случаев в поисках программы не надо лазить по интернету, достаточно запустить поиск по репозиторию. Установка из rpm и deb конечно оптимальный вариант, но далеко не все занимаются тем, что компилируют свою программу под разные дистрибутивыи не все дистрибутивы ее поддерживают.
Установка из репозитория имеет огромный плюс - не надо следить за обновлениями вручную, все обновляется через одну программу.
Но тем не менее, эти обновления далеко не всегда своевременны. Плюс если это пакет малопопулярный и мейнтейнер мало им интересуется, обновлений можно и не дождаться
Кстати, недавно ковырялся с установкой "стандартных корпоративных" фонтов пользователям и придумал, что самый быстрый и надежный (в моих, понятно, условиях) способ решить задачу - это собрать собственный msi дистрибутив и распространить его на рабочие станции посредством AD.

Так вот для создания дистрибутива использовал Advanced Installer. Очень мне понравился. И даже его бесплатная версия обладает полезным функционалом.
главное, чтобы ваш инсталлятор использовал unicode для имён папок и файлов, а то получается, что программы либо не могут установится совсем, либо ставятся "мимо".
Ну, на NTFS юникод для имен не использовать сложно :)
Другое дело, что некоторые jurasic-style программы до сих пор страдают мигренью по поводу пробелов и не-латинских букв в путях...
именно, что ntfs — большинство инсталляторов не понимают юникода в именах файлов. т.е. возможно, что функции работы с файловой системой используют юникод, но вот окно ввода имени папки или там строковая переменная для получения пути к папке из реестра — никак не юникодные, иначе б не теряли точки над "ü", заменяя папку "Startmenü" на "Startmenu" или "Startmenь" при русском, установленном языком по умолчанию.
но это не страшно, в понедельник я заказал себе оригинальную английскую XP :)
Лучший инсталлятор - архив с программой(самораспаковывающийся). Распаковал и все.
Если для работы программы нужны какие-нибудь системные длл, то лучше их на всякий случай закинуть в папку с программой(заодно не будет проблем с версиями длл).
Главное преимущество инсталлятора на Windows Installer - он будет выглядеть прилично и 100% работать во всех следующих поколениях Windows. Поэтому мое мнение - для Windows нужно делать инсталляторы с помощью Windows Installer, тем более, что он очень мощный по своим возможностям.
Кстати, более-менее удобно делать их через Setup проекты Microsoft Visual Studio.
НЛО прилетело и опубликовало эту надпись здесь
Это местный клоун?
(это был вопрос всем :) ) Вижу, что такие индивиды есть на всех крупных сообществах.
использую NSIS и рекомендую всем именно как язык программирования для простых задач ну и как мощный (и бесплатный!) инсталятор конечно же.
список инсталяторов можно дополнить утилитой, входящей в состав Windows XP - %windir%\system32\iexpress.exe
инсталятор - это инструмент который встраивает в систему необходимый функционал.
/usr/ports/*/*/make install
больше он делать ничего не должен, и видеть я больше от него не хочу.
Хотите узнать, как лучше всего узнать.. прочитал ли пользователь лицензионное соглашение ?
Прекрасный способ это проверить я нашел давно на сайте у гуру-Крякеров. Они нахачили обычный форум так что при регистрации надо было прочитать и ответить на несколько вопросов которые были описаны в лицензионном соглашении. Как я ни старался БЫСТРО пройти регистраию - не мог, пока не нашел ответы, ну а пока искал - немного изучил соглашение.
Очень умно сделано. Никакая капча не сравнится.
Обзор откровенно херовый.

>Любой желающий создать инсталлятор должен знать, что это - технология, которая весьма и весьма сильно держит весь рынок установки под Windows. Причина этого - монополия Microsoft в области его обновления у конечного пользователя.

Причина далеко не в этом. Windows Installer — менеджер установки пакетов, _встроенный_ в систему. Поэтому ему доступны такие вещи как транзакционность установки — либо всё поставилось, либо всё откатилось. Никакие сторонние движки такого уровня контроля обеспечить не могут в принципе, поскольку не являются частью системы. Плюс ряд сервисов над этим, которые упрощают работу для администраторов...

К вопросу распространения приложений
http://rsdn.ru/article/install/Deploying.xml
> Windows Installer — менеджер установки пакетов, _встроенный_ в систему. Поэтому ему доступны такие вещи как транзакционность установки — либо всё поставилось, либо всё откатилось. Никакие сторонние движки такого уровня контроля обеспечить не могут в принципе, поскольку не являются частью системы.
Ну да, конечно :) Любой грамотный инсталлятор это может сделать. А встроенность в систему - нет ее. Это отдельный сервис, отдельный набор библиотек. Он обновляется либо через Windows Update, либо идет вместе с софтом от Microsoft.
Простой пример: ваш "любой грамотный инсталлятор" берёт и банально падает — не важно по какой причине — никакого восстановления первоначального состояния не произойдёт. В случае WI, движок установки является отдельным процессом, при падении одного из Custom Actions откат пройдёт нормально.
Я Вам могу привести сотню примеров из собственной практики, когда падал движок Windows Installer :)

Поверьте мне, из практики следует, что Windows Installer очень хорош, но умелые руки программиста и на NSIS напишут не хуже.
И, кстати, спасибо за ссылку. Google ее по запросу ни разу не выдавал, а на RSDN я ее как-то пропустил :)

Перенес в статью.
> Для Веб-приложений он никакого смысла не имеет

Ну да? Для клиентской части — ежу понятно что не имеет. А для серверной?
Проверить наличие IIS, настроить его, создать в нём веб-сайт или виртуальную папку, установить файлы веб-приложения, создать базу, наполнить её данными.
Вы серьёзно считаете что для этого не нужен инсталлятор?..
Я как пользователь ненавижу Windows Installer. Причин масса - от двух каталогов в которых хранится инсталляционный мусор (да, винты сейчас большие, но это мое дело как распорядиться местом), постоянная излишняя предупредительность (например, попытки в совершенно непонятных случаях восстановить инсталляцию, если, например, удален в папке с инсталляцией текстовый или звуковой файлик), частое и ненужное выпрыгивания процесса инсталляции всамых разных загадочных местах.

Самое большое преступление WI, это то что он срет в %SystemRoot%\ - замечательно справляется с деградацией системы. Если решение против System Restore есть, то против Windows Installer - нету.

Я не побоюсь сформулировать так: "Для меня как пользователя нет ничего хуже Windows Installer, кривой и неудобной поделки".
А что это Windows Installer?
Вшитый в винду инсталлятор. Работает как сервис.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории