Exe без лишних файлов

Простейшие вопросы в области инженерной разработки
Ответить
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Exe без лишних файлов

Сообщение rushonda »

Добрый день!
А нельзя ли собрать exe без лишних файлов - например чтобы файл настроек был внутри exe?
(Чтобы просто скопировал exe и работаешь, лишние папки и файлы не тащишь за собой)
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5462
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 28 раз
Поблагодарили: 86 раз

Re: Exe без лишних файлов

Сообщение IvanLis »

rushonda писал(а): 04 дек 2021, 10:39 Добрый день!
А нельзя ли собрать exe без лишних файлов - например чтобы файл настроек был внутри exe?
(Чтобы просто скопировал exe и работаешь, лишние папки и файлы не тащишь за собой)
Если файл настроек необходим, то "тащить" его необходимо отдельно.
Включать его в EXE не имеет смысла, пользователь его не сможет поменять, это делается константой.

Если же config файл необходим, а тащить его не хочется, то делается следующим образом.
При запуске программы проверяется наличие config файла, при его отсутствии он создается с настройками "по умолчанию".
Загружаются настройки и программа начинает работать.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Exe без лишних файлов

Сообщение Kosist »

Если файл настроек будет внутри файла *.exe, то как его тогда редактировать вручную? Это вообще не общепринятая практика.
А если файл настроек не используется приложением, то его можно игнорировать, и не обязательно его копировать дальше.
В целом, если приложение не использует dll, которые нужно положить "возле" exe, то можно сбилдить только один файл exe.
Но не нужно забывать, что :labview: приложения требуют установку ран-тайма, так что хоть раз, но нужно будет устанавливать дополнительно и его + драйвера. И тогда проблема копирования нескольких файлов вместо одного - не такая уже и проблема...
Мы делили апельсин - много наших полегло...
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Re: Exe без лишних файлов

Сообщение rushonda »

Ясно, а если есть dll, их в exe нельзя запихать? В общем все, (например картинки, которые из файла подгружаются ) кроме файла конфигурации?
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Re: Exe без лишних файлов

Сообщение rushonda »

И все таки: нельзя ли файл конфигурации внутри программы хранить, причем если нужно из программы менять параметры, а не в отдельном файле
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Exe без лишних файлов

Сообщение Artem.spb »

rushonda писал(а): 05 дек 2021, 18:16 Ясно, а если есть dll, их в exe нельзя запихать? В общем все, (например картинки, которые из файла подгружаются ) кроме файла конфигурации?
dll специально придуманы чтобы жить отдельно и (в идеале) использоваться совместно разными программами.
Картинки можно встроить в те элементы, которые их используют.
И все таки: нельзя ли файл конфигурации внутри программы хранить, причем если нужно из программы менять параметры, а не в отдельном файле
Чем вам так ненавистен внешний файл?
Хранить можно, и даже менять настройки после запуска можно, но вот сохранить перед выходом не получится, и после перезапуска снова будут значения по умолчанию.
Править ехе на ходу мало кто в состоянии, разве что вирусы. Иногда это вызывает сложности - с обновлением, но в целом на мой взгляд это вполне разумно.
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Re: Exe без лишних файлов

Сообщение rushonda »

Пришла в голову мысль, чтобы сделать 2 exe. Один основной, второй для изменения настроек, удобно вроде было бы на мой взгляд-2 экзешника кинул в папку и вперёд)
Artem.spb

Activity Автор
professor
professor
Сообщения: 3394
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 49 раз
Поблагодарили: 172 раза
Контактная информация:

Re: Exe без лишних файлов

Сообщение Artem.spb »

rushonda писал(а): 05 дек 2021, 20:21 Пришла в голову мысль, чтобы сделать 2 exe. Один основной, второй для изменения настроек, удобно вроде было бы на мой взгляд-2 экзешника кинул в папку и вперёд)
2 файла, 1 - ехе, второй ini с настройками. Очень удобно и привычно - кинул в папку и вперёд.
Аватара пользователя
Kosist

Activity Gold
expert
expert
Сообщения: 1236
Зарегистрирован: 21 фев 2011, 23:44
Награды: 2
Версия LabVIEW: 2013-2020
Благодарил (а): 23 раза
Поблагодарили: 30 раз
Контактная информация:

Re: Exe без лишних файлов

Сообщение Kosist »

rushonda писал(а): 05 дек 2021, 20:21 Пришла в голову мысль, чтобы сделать 2 exe. Один основной, второй для изменения настроек, удобно вроде было бы на мой взгляд-2 экзешника кинул в папку и вперёд)
Довольно оригинальный велосипед, дерзайте :haha:
Еще добавьте третий екзешник, который будет копировать те два екзешника в папку.
Мы делили апельсин - много наших полегло...
ujin1
adviser
adviser
Сообщения: 231
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 18 раз
Поблагодарили: 37 раз
Контактная информация:

Re: Exe без лишних файлов

Сообщение ujin1 »

rushonda писал(а): 05 дек 2021, 20:21 Пришла в голову мысль, чтобы сделать 2 exe. Один основной, второй для изменения настроек, удобно вроде было бы на мой взгляд-2 экзешника кинул в папку и вперёд)
Так получается не самый минимальный вариант. Придется все-равно 2 файла копировать. А изначально нужно чтобы был один файл.
От варианта *.exe + *.ini будет отличаться расширением и содержимым. Причем в варианте *.ini содержимое более доступно и меньше по размеру.
Изображение
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2210
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 27 раз
Поблагодарили: 26 раз

Re: Exe без лишних файлов

Сообщение Borjomy_1 »

Действительно непонятно, почему исполняемый файл не может сам, при определении отсутствия файла конфигурации, создать его самостоятельно с дефолтными настройками. Точно также можно хранить dll в теле exe, но разворачивать его в каталог перед запуском вызывающей его vi.
Но тут есть важный нюанс: обычно дистрибутив устанавливается в Program Files, а манипуляции в этих каталогах требуют прав администратора. Т.е разворачивать надо в ProgramData.
Аватара пользователя
dadreamer

Activity Professionalism Автор
professor
professor
Сообщения: 3926
Зарегистрирован: 17 фев 2013, 16:33
Награды: 4
Версия LabVIEW: 2.5 — 2022
Благодарил (а): 11 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Exe без лишних файлов

Сообщение dadreamer »

Borjomy_1 писал(а): 06 дек 2021, 10:31Действительно непонятно, почему исполняемый файл не может сам, при определении отсутствия файла конфигурации, создать его самостоятельно с дефолтными настройками.
Так откуда программе знать, какие настройки там должны быть, какие дефолтные, а какие нет? Полагая, что в .ini не только настройки среды/RTE содержатся. Всегда это "вручную" делалось, ну т.е., проверка наличия файла при запуске и создание файла с начальными настройками, если файла нет.
Borjomy_1 писал(а): 06 дек 2021, 10:31Точно также можно хранить dll в теле exe, но разворачивать его в каталог перед запуском вызывающей его vi.
Была уже такая технология, называлась Code Interface Node. Модуль хранился в ресурсах :vi: и распаковывался в Temp при запуске программы. Но это было, пожалуй, единственное преимущество по сравнению с традиционными библиотеками. Минусов оказалось больше и в 2011 NI от такого подхода отказались.
Если хочется, никто не мешает хранить данные в тэгах :vi: - viewtopic.php?p=69358#p69358 Но в EXE, очевидно, записать ничего не получится, т.к. его придётся перекомпилировать. Поэтому возвращаемся к классике типа .ini.
rushonda
developer
developer
Сообщения: 289
Зарегистрирован: 26 фев 2016, 06:31
Версия LabVIEW: 18-20
Благодарил (а): 6 раз
Поблагодарили: 7 раз
Контактная информация:

Re: Exe без лишних файлов

Сообщение rushonda »

Всем спасибо
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Для чайников»