Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Windows Новый топик    Ответить
 Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
Добрый день!

Есть программа, exe-файл с зависимостями от dll'ек, присутствующих на компьютере разработчика.
Нужно в командной строке выполнить нечто, что создаст msi, или что там нынче в windows принято - чтобы потом в
автор
program files
создалась папка и сложился exe и все dll.
В реестре и системе ничего делать не надо. Можно даже ставить программу "только для пользователя"- если такое возможно в windows (как в macos/linux).

Главное, чтобы разработчику не надо было никаких "откройте окно, нажмите на кнопку"- сборка будет на CI-агенте.
Ну и лицензия чистая- чтобы спокойно создавать коммерческое приложение.
Что лучше использовать?

PS: для умников- 15 лет не писал под windows и теперь это небольшая побочная работа. Что знал- давно забыл.
26 июн 20, 12:25    [22157723]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3675
Alexey Tomin
Добрый день!

Есть программа, exe-файл с зависимостями от dll'ек, присутствующих на компьютере разработчика.
Нужно в командной строке выполнить нечто, что создаст msi, или что там нынче в windows принято - чтобы потом в
автор
program files
создалась папка и сложился exe и все dll.
В реестре и системе ничего делать не надо. Можно даже ставить программу "только для пользователя"- если такое возможно в windows (как в macos/linux).

Главное, чтобы разработчику не надо было никаких "откройте окно, нажмите на кнопку"- сборка будет на CI-агенте.
Ну и лицензия чистая- чтобы спокойно создавать коммерческое приложение.
Что лучше использовать?

PS: для умников- 15 лет не писал под windows и теперь это небольшая побочная работа. Что знал- давно забыл.


Выполнить нечто можно, но для начала надо написать файлы для инсталлятора *wxs и т.д., по которым нечто будет строить инсталлятор

https://wixtoolset.org/
26 июн 20, 13:06    [22157762]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50470

Alexey Tomin
Что лучше использовать?

Лично я предпочитаю ZIP/7Z файлы, а инструкция по установке сводится к "распакуйте архив в
желаемую папку и всё, можете запускать". Если нужна более сложная логика при инсталляции -
я использую InnoSetup. Если нужен именно MSI файл (например, для инсталляции через
доменные политики), то WIX.

Posted via ActualForum NNTP Server 1.5

26 июн 20, 13:10    [22157766]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Dima T
Member

Откуда:
Сообщений: 14840
rar -z
26 июн 20, 13:29    [22157784]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
kolobok0
Member

Откуда:
Сообщений: 2141
Alexey Tomin,

wix если без сильных наворотов.
если не нужна официальная поддержка подсистемы MSI у форточек - то можно любым архиватором. но круг осей сужается, если например в будущем требуемая внешняя дэлеле претерпит изменения(названия, место жизни в пакете установки) - то архив вам скажет увы...официальное использование MSI подсистемы мелкомягких позволяет указать требования к внешнему окружению - ну а далее траблы юзвера всё это тащить. Ну или там хитрее логику можно наворачивать - как самому в дестрибутиве иметь необходимое, так и запрашивать из вэба.

wix практически умеет всё, но порой не понятно как это надо написать чтоб случилось. в данном случае помогает анализ существующих пакетов (орка вам в помощь) ну и как у большого брата сделано - см. инстолл шилд...


как то так
(круглый)
ЗЫ
Да, чтоб без юая - то называется тихой установкой. обычно флажок silent по умолчанию поддерживается конструкторами инсталяторов.
26 июн 20, 16:34    [22157884]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
Ролг Хупин
Выполнить нечто можно, но для начала надо написать файлы для инсталлятора *wxs и т.д., по которым нечто будет строить инсталлятор
https://wixtoolset.org/


Спасибо! Видимо, это лучший вариант.

Dimitry Sibiryakov
Alexey Tomin
Что лучше использовать?

Лично я предпочитаю ZIP/7Z файлы, а инструкция по установке сводится к "распакуйте архив в
желаемую папку и всё, можете запускать".


Да, там вроде self-extract архивы есть. LGPL позволяет всё. Для начала так сделаю, хотя целевая аудитория- вот совсем чайники.
Лучше если после скачивания достаточно ткнуть в "запустить", ткнуть "далее" и получить иконку где положено.
Ну и мне полезно сделать так, чтобы винда не ругалась на опасную программу- может в магазин мелкомягих включить.

Dima T
rar -z


Это ж платно.
27 июн 20, 12:27    [22158171]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50470

Alexey Tomin
Это ж платно.

Сертификаты для подписи и "чтобы в магазин включить" тоже вроде бы нахаляву не раздают.

Posted via ActualForum NNTP Server 1.5

27 июн 20, 12:33    [22158174]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
Dimitry Sibiryakov
Alexey Tomin
Это ж платно.

Сертификаты для подписи и "чтобы в магазин включить" тоже вроде бы нахаляву не раздают.


Одно дело купить сертификат необходимый для распространиения.

Другое- выбрать платный rar вместо свободного 7zip, или WIX.
27 июн 20, 21:19    [22158369]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Dima T
Member

Откуда:
Сообщений: 14840
Dimitry Sibiryakov

Alexey Tomin
Это ж платно.

Сертификаты для подписи и "чтобы в магазин включить" тоже вроде бы нахаляву не раздают.

Немного изучал эту тему - удовольствие недешевое, как понял в год обойдется порядка 40 т.р., но даже если деньги есть - сертификат купить проблематично если ты не юр.лицо.
28 июн 20, 17:16    [22158616]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
Dima T
Dimitry Sibiryakov

пропущено...

Сертификаты для подписи и "чтобы в магазин включить" тоже вроде бы нахаляву не раздают.

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


Юрлицо, конечно.
29 июн 20, 13:05    [22159009]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
kolobok0

wix если без сильных наворотов.


Спасибо, собрал дистрибутив.

Только вот он включает только сам exe без dll, от которых он зависит.
Если ли средство вложить в дистрибутив все dll? В macOS есть небольшая софтинка, которая всё делает.

Wix или что-нибудь другое умеет так же? Так же, без всяких "нажмите кнопку" (только такое нагуглилось), а просто в скрипт сборки чтобы включить- и получить все dll в нужной попке и чтобы они Wix'ом собрались в MSI

Сообщение было отредактировано: 30 июн 20, 17:22
30 июн 20, 17:22    [22159857]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
Alexey Tomin
Wix или что-нибудь другое умеет так же? Так же, без всяких "нажмите кнопку" (только такое нагуглилось), а просто в скрипт сборки чтобы включить- и получить все dll в нужной попке и чтобы они Wix'ом собрались в MSI


Кажется вот решение: https://stackoverflow.com/questions/2580489/managing-dependency-hell-with-wix-and-c-sharp
Доберусь до виндовой машины и попробую.
30 июн 20, 17:37    [22159871]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
kolobok0
Member

Откуда:
Сообщений: 2141
Alexey Tomin,

да, конечно. всё умеет что MSI подсистема. ну или почти всё. скорее всего не прописаны бинари в таблице (простите я забыл названия уже - давно было дело).

как лучше подходить к решению проблем (ну помимо гугла) =
ставите инстолл шлд или орку. если первый - то там понтово нажимать кнопочки получать нужный результат - смотреть что в таблицах он пишет на автомате.
если орку - то это лёгкая софтинка которой можно заглянуть в любой дистрибутив. вот так и делаете - заглядываете и ищите отличия от своего, после викса.
где то будет таблица в которой вы увидите перечисление бинарей которые распаковываются. вот туда заносите свои (в эту таблицу, средствами wix прописываете то что нужно). опять собираете и получаете профит.

(круглый)
ЗЫ
А ну да..глянул по гуглю..таблица так и называется - бинари
или даже лучше отсюда

Сообщение было отредактировано: 30 июн 20, 17:42
30 июн 20, 17:38    [22159872]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 50470

Alexey Tomin
Если ли средство вложить в дистрибутив все dll?

Это не так-то просто. Есть DLL, которые можно просто закинуть в каталог приложения и он
будет их использовать. Есть DLL которые туда закинуть нельзя, а переписать их не выйдет,
потому что они системные и уже кем-то используются. Есть DLL, которые вообще не будут
работать без полной инсталляции пакета, которому принадлежат.

Так что если ты искал кнопку "сделать всё", то обломись, так не получится.

Posted via ActualForum NNTP Server 1.5

30 июн 20, 18:30    [22159909]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
Dimitry Sibiryakov
Alexey Tomin
Если ли средство вложить в дистрибутив все dll?

Это не так-то просто. Есть DLL, которые можно просто закинуть в каталог приложения и он
будет их использовать. Есть DLL которые туда закинуть нельзя, а переписать их не выйдет,
потому что они системные и уже кем-то используются. Есть DLL, которые вообще не будут
работать без полной инсталляции пакета, которому принадлежат.

Так что если ты искал кнопку "сделать всё", то обломись, так не получится.


Все мои dll работают, просто если из собрать в кучку и положить рядом с exe.
Я это уже сделал, но это именно что собранные 10 dll'ек, безо всякой автоматики.
Хочется повторить это одной консольной командой, как в macos (собственно приложение-то одно и то же на 80%, есть специфичный код и сборки под разные OS).
30 июн 20, 19:24    [22159936]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
kolobok0
ставите инстолл шлд или орку


Что за орка, простите?
30 июн 20, 19:25    [22159938]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
kolobok0
Member

Откуда:
Сообщений: 2141
Alexey Tomin,

редактор
30 июн 20, 21:15    [22159973]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
kolobok0
Alexey Tomin,

редактор


Не понял, как это мне поможет.
Мои зависимости установлены через msys2. Orca про них не знает.

Вообще я тормоз- в msys2 встроен сбор зависимостей, примерно так.

А инсталятор лучше через inno-setup создавать. Он хотя бы умеет включать "все dll вон из той папки"
1 июл 20, 12:00    [22160131]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
kolobok0
Member

Откуда:
Сообщений: 2141
Alexey Tomin,

орка - он работает с бд MSI . Если вы под форточки делаете , то официально - через службу MSI. Чем создан инсталляционный пакет - пофигу, хоть в своей программе.

я подкидывал мысль, что учиться у других - оно так быстрее. помогает либо орка либо инстолл шилд (там можно до создания - глянуть куда и что он понапихал - в какие таблицы MSI).

(круглый)
1 июл 20, 22:04    [22160424]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
vot_takoy
Member

Откуда: Москоу
Сообщений: 403
Если я правильно понял задачу, то почитайте про Clickonce пакеты, для сборки оных использовал mageui
1 июл 20, 23:20    [22160454]     Ответить | Цитировать Сообщить модератору
 Re: Создание дистрибутива из командной строки  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1884
vot_takoy
Если я правильно понял задачу, то почитайте про Clickonce пакеты, для сборки оных использовал mageui


Спасибо, но...

автор
...основанных на фреймворках Windows Forms или Windows Presentation Foundation.


У меня нет винформс - так что мимо
2 июл 20, 10:43    [22160655]     Ответить | Цитировать Сообщить модератору
Все форумы / Windows Ответить