|
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
|
|
Редактирование инсталятора05.10.2017, 09:50. Показов 1371. Ответов 17
Метки нет (Все метки)
Здравствуйте.
Ранее я никогда не создавал установщики для программ, а тут вот внезапно понадобилось отредактировать уже готовый. Причём эта тема на удивление сложно гуглится. Само создание инсталятора найти можно без проблем, а вот дальше проблемы. И если честно, я даже не очень знаю, что надо показывать, чтобы вы мне помогли, так что говорите. А задача в следующем: При установке пользователю надо выбрать какие именно компоненты он хочет поставить и какой язык ему нужен (на скриншоте это RadioButtons). Всё работает. Если после установки запустить файл установщика ещё раз, то у пользователя будет выбор: удалить программу или восстановить (кстати, вот где этот выбор я так и не нашёл). Нужно сделать так, чтобы в случаи выбора восстановления у пользователя спрашивали какие компоненты он хочет ставить и какой язык ему нужен. В каком месте и как это вообще делается? P.S. Сам проект кидать сюда очень накладно.
0
|
|
| 05.10.2017, 09:50 | |
|
Ответы с готовыми решениями:
17
Файлы для инсталятора Создание инсталятора Проблемы с публикацией инсталятора |
|
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
|
|
| 08.11.2017, 09:36 [ТС] | |
|
Попробовал разобраться с inno setup и, наверное, получилось. По крайней мере инсталятор вышел. Да вот беда: начальство настаивает, чтобы я работал именно в VS, потому что "всегда так делали и нефиг придумывать велосипед".
А потому проблема вновь актуальна: как редактировать инсталятор из VS? Где вообще смотреть и редактировать логику какое окно за каким идёт и как вести себя при том или ином выборе? А то сейчас для меня этот инсталер - это как литой металлический куб, который надо открыть... бррр...
0
|
|
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
|
| 08.11.2017, 10:03 | |
|
Скинь свойства проекта IdentSetup или проект, - собирается в MSI в итоге?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 08.11.2017, 10:06 | |||
|
Справа в панели свойств пропишите свойство, которое будут устанавливать "шарики", на скриншоте выше это BTNSELECTDRIVERNAME. После этого окошка данному свойству будет присвоено значение, соответствующее выбранному шарику — у вас это 1, 2, 3 или 4 (1 по умолчанию, свойство DefaultValue). Это свойство можно использовать для того, чтобы устанавливать определенные файлы. Например, если выбрать в обозревателе проекта Primary Output from LaserDriverSERS и в панели свойств в поле Condition прописать BTNSELECTDRIVERNAME=4, то эти файлы будут установлены только тогда, когда была выбрана опция, соответствующая значению 4 в диалоге.Если нужно производить какие-то дополнительне действия (изменить настройки после установки, например), то можно создать Custom Action, передать туда это свойство и работать с его значением напрямую.
0
|
|||
|
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
|
||
| 08.11.2017, 10:18 [ТС] | ||
|
И да, наверное это стандартный MSI. kolorotur, большое спасибо! Но всё равно не понятно... При первом запуске инсталера всё проходит по пунктам как есть в User Interface. Но если я запускаю исталер при уже установленной программе, то меня спрашивают хочу я удалить приложение или восстановить (приложил скриншот). Где здесь это окно?
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 08.11.2017, 10:25 | ||
|
0
|
||
|
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
|
|||
| 08.11.2017, 10:33 [ТС] | |||
|
0
|
|||
|
TheGreatCornholio
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||||||||
| 08.11.2017, 10:39 | ||||||||
|
и\или запуск через
Можно попробовать отредачить MSI через Orca или др. утилиты Но, там - темный лес, если не знаешь...
0
|
||||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 08.11.2017, 11:02 | |||
|
Может, какой-нибудь файл устанавливается в какую-нибудь запрещенную папку или сама папка не создалась при установке, или что-то должно было при установке записаться в реестр, но не записалось. Посмотрите лог событий, там должно быть событие от MsiInstaller, в нем должно быть указано какого компонента не хватает. А что при починке устанавливает не ту версию — скорее всего как-то криво настроена условная установка файлов, например в обход установщика. Изменение установленных компонентов делается через опцию Change/Modify, но в студийном установщике она не поддерживается
0
|
|||
|
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
|
|
| 08.11.2017, 12:41 [ТС] | |
|
kolorotur, события от MsiInstaller действительно есть, только в них нет совсем ничего необычного. Вот все, которые появились в журнале после установке на новую машину:
Product: Identification Application -- Installation completed successfully. Windows Installer installed the product. Product Name: Identification Application. Product Version: 2.3. Product Language: 1033. Manufacturer: Optec. Installation success or error status: 0.
0
|
|
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
|
| 08.11.2017, 13:00 | |
|
FaceHoof, то что у вас Product Language: 1033 это ничего? Английский язык по умолчанию включен
0
|
|
|
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
|
|
| 08.11.2017, 13:16 [ТС] | |
|
kingzfate, да ничего. То, что пользователь выбрал при установке другой язык пишется в конфиг. Но после первого запуска запускается восстановление и трёт эту запись оттуда. Сейчас уже "не тот язык" - это второстепенная проблема. Куда важнее почему запускается восстановление при первом запуске.
0
|
|
|
Unnamed
160 / 158 / 81
Регистрация: 09.06.2011
Сообщений: 852
|
|
| 08.11.2017, 13:25 | |
|
FaceHoof, ничего объективного сказать не могу по этому поводу, но попробуйте установить в программу в какой ни будь песочнице или программе со слежкой. Что бы можно было отследить пути установки на всем ПК. И так же проверить после первого запуска. Возможно и правда что-то "недоустанавливается"
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||
| 08.11.2017, 15:29 | ||||
|
Как происходит установка? Под какой учеткой? Под какой учеткой потом запускается установленная программа?
0
|
||||
|
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
|
||||||||
| 09.11.2017, 09:29 [ТС] | ||||||||
|
Наверное, не будет ничего страшного если я его сюда кину. Кликните здесь для просмотра всего текста
А есть какая-то возможность у установщика понять, что сейчас идёт восстановление программы, а не установка и выполнить определённое действие? Добавлено через 17 часов 32 минуты kolorotur, действительно, если устанавливать и запускать из под администратора, то проблема не воспроизводится. Но что это значит? Что при установке что-то было закинута туда, куда есть доступ только у админа и при запуске нам приходится это закидывать ещё раз?
0
|
||||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 09.11.2017, 10:37 | ||
|
По умолчанию установщик создает не обычный ярлык на программу, а т.н. Advertised Shortcut. Если вы откроете свойства этого ярлыка, то увидите, что путь к исполняемому файлу не указан и его невозможно изменить. Особенность таких ярлыков в том, что при запуске через них приложения пакет установки проверяет целостность всех установленных компонентов и если какого-то из них не хватает или он был изменен, то установщик автоматически запускает восстановление и перезаписывает измененные и добавляет отсутствующие файлы из пакета установки. Решения проблемы мне видится два: 1. Отключите в установщике опцию создания подобных ярлыков. Для этого надо где-нибудь установить свойство DISABLEADVTSHORTCUTS на значение 1 — тогда установщик будет создавать обычные ярлыки с путем к файлу, по запуску из которых не будет производиться валидация. Надо признать, что в проекте установки, поставляемом со студией, значение свойств можно устанавливать только через пользовательский интерфейс ![]() Один из вариантов — заменить окно Welcome на, например, Checkboxes, скопировать из окошка Welcome в окошко с чекбоксами весь текст, самим чекбоксам выставить свойство Visible на false, одному из них установить свойство DISABLEADVTSHORTCUTS и значение Checked. После чего окно Welcome удалить из установщика.2. Этот вариант, как мне кажется, лучше: хранить языковые настройки не в настройках приложения, а в пользовательских настройках. В пользовательские конфиги установщик не суется и дополнительным бонусом будет возможность каждому пользователю устанавливать свой язык приложения.
3
|
||
|
113 / 100 / 68
Регистрация: 21.04.2014
Сообщений: 1,420
|
|
| 09.11.2017, 16:01 [ТС] | |
|
kolorotur, большое спасибо за подробный ответ!
Но я не понял один момент: Почему восстановление происходит только после первой установки приложения? Все последующие разы я могу удалять и заново устанавливать приложение сколько влезет и никакого восстановления не будет, хотя конфиг меняется точно так же. P.S. А если поменять конфиг руками, то да, таки запускается восстановление.
0
|
|
| 09.11.2017, 16:01 | |
|
Помогаю со студенческими работами здесь
18
Создание инсталятора Создание инсталятора Создание инсталятора Создание инсталятора c#
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|