Exe без лишних файлов
-
- developer
- Сообщения: 289
- Зарегистрирован: 26 фев 2016, 06:31
- Версия LabVIEW: 18-20
- Благодарил (а): 6 раз
- Поблагодарили: 7 раз
- Контактная информация:
Exe без лишних файлов
Добрый день!
А нельзя ли собрать exe без лишних файлов - например чтобы файл настроек был внутри exe?
(Чтобы просто скопировал exe и работаешь, лишние папки и файлы не тащишь за собой)
А нельзя ли собрать exe без лишних файлов - например чтобы файл настроек был внутри exe?
(Чтобы просто скопировал exe и работаешь, лишние папки и файлы не тащишь за собой)
-
IvanLis
- guru
- Сообщения: 5462
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 86 раз
Re: Exe без лишних файлов
Если файл настроек необходим, то "тащить" его необходимо отдельно.
Включать его в EXE не имеет смысла, пользователь его не сможет поменять, это делается константой.
Если же config файл необходим, а тащить его не хочется, то делается следующим образом.
При запуске программы проверяется наличие config файла, при его отсутствии он создается с настройками "по умолчанию".
Загружаются настройки и программа начинает работать.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Exe без лишних файлов
Если файл настроек будет внутри файла *.exe, то как его тогда редактировать вручную? Это вообще не общепринятая практика.
А если файл настроек не используется приложением, то его можно игнорировать, и не обязательно его копировать дальше.
В целом, если приложение не использует dll, которые нужно положить "возле" exe, то можно сбилдить только один файл exe.
Но не нужно забывать, что приложения требуют установку ран-тайма, так что хоть раз, но нужно будет устанавливать дополнительно и его + драйвера. И тогда проблема копирования нескольких файлов вместо одного - не такая уже и проблема...
А если файл настроек не используется приложением, то его можно игнорировать, и не обязательно его копировать дальше.
В целом, если приложение не использует dll, которые нужно положить "возле" exe, то можно сбилдить только один файл exe.
Но не нужно забывать, что приложения требуют установку ран-тайма, так что хоть раз, но нужно будет устанавливать дополнительно и его + драйвера. И тогда проблема копирования нескольких файлов вместо одного - не такая уже и проблема...
Мы делили апельсин - много наших полегло...
-
- developer
- Сообщения: 289
- Зарегистрирован: 26 фев 2016, 06:31
- Версия LabVIEW: 18-20
- Благодарил (а): 6 раз
- Поблагодарили: 7 раз
- Контактная информация:
Re: Exe без лишних файлов
Ясно, а если есть dll, их в exe нельзя запихать? В общем все, (например картинки, которые из файла подгружаются ) кроме файла конфигурации?
-
- developer
- Сообщения: 289
- Зарегистрирован: 26 фев 2016, 06:31
- Версия LabVIEW: 18-20
- Благодарил (а): 6 раз
- Поблагодарили: 7 раз
- Контактная информация:
Re: Exe без лишних файлов
И все таки: нельзя ли файл конфигурации внутри программы хранить, причем если нужно из программы менять параметры, а не в отдельном файле
-
- professor
- Сообщения: 3393
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 172 раза
- Контактная информация:
Re: Exe без лишних файлов
dll специально придуманы чтобы жить отдельно и (в идеале) использоваться совместно разными программами.
Картинки можно встроить в те элементы, которые их используют.
Чем вам так ненавистен внешний файл?И все таки: нельзя ли файл конфигурации внутри программы хранить, причем если нужно из программы менять параметры, а не в отдельном файле
Хранить можно, и даже менять настройки после запуска можно, но вот сохранить перед выходом не получится, и после перезапуска снова будут значения по умолчанию.
Править ехе на ходу мало кто в состоянии, разве что вирусы. Иногда это вызывает сложности - с обновлением, но в целом на мой взгляд это вполне разумно.
-
- developer
- Сообщения: 289
- Зарегистрирован: 26 фев 2016, 06:31
- Версия LabVIEW: 18-20
- Благодарил (а): 6 раз
- Поблагодарили: 7 раз
- Контактная информация:
Re: Exe без лишних файлов
Пришла в голову мысль, чтобы сделать 2 exe. Один основной, второй для изменения настроек, удобно вроде было бы на мой взгляд-2 экзешника кинул в папку и вперёд)
-
- professor
- Сообщения: 3393
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 172 раза
- Контактная информация:
Re: Exe без лишних файлов
2 файла, 1 - ехе, второй ini с настройками. Очень удобно и привычно - кинул в папку и вперёд.
-
Kosist
- expert
- Сообщения: 1236
- Зарегистрирован: 21 фев 2011, 23:44
- Награды: 2
- Версия LabVIEW: 2013-2020
- Благодарил (а): 23 раза
- Поблагодарили: 30 раз
- Контактная информация:
Re: Exe без лишних файлов
Довольно оригинальный велосипед, дерзайте
Еще добавьте третий екзешник, который будет копировать те два екзешника в папку.
Мы делили апельсин - много наших полегло...
-
- adviser
- Сообщения: 231
- Зарегистрирован: 06 ноя 2020, 15:37
- Версия LabVIEW: 19
- Благодарил (а): 18 раз
- Поблагодарили: 37 раз
- Контактная информация:
Re: Exe без лишних файлов
Так получается не самый минимальный вариант. Придется все-равно 2 файла копировать. А изначально нужно чтобы был один файл.
От варианта *.exe + *.ini будет отличаться расширением и содержимым. Причем в варианте *.ini содержимое более доступно и меньше по размеру.
-
- doctor
- Сообщения: 2210
- Зарегистрирован: 28 июн 2012, 09:32
- Награды: 3
- Версия LabVIEW: 2009..2020
- Откуда: город семи холмов
- Благодарил (а): 27 раз
- Поблагодарили: 26 раз
Re: Exe без лишних файлов
Действительно непонятно, почему исполняемый файл не может сам, при определении отсутствия файла конфигурации, создать его самостоятельно с дефолтными настройками. Точно также можно хранить dll в теле exe, но разворачивать его в каталог перед запуском вызывающей его vi.
Но тут есть важный нюанс: обычно дистрибутив устанавливается в Program Files, а манипуляции в этих каталогах требуют прав администратора. Т.е разворачивать надо в ProgramData.
Но тут есть важный нюанс: обычно дистрибутив устанавливается в Program Files, а манипуляции в этих каталогах требуют прав администратора. Т.е разворачивать надо в ProgramData.
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Exe без лишних файлов
Так откуда программе знать, какие настройки там должны быть, какие дефолтные, а какие нет? Полагая, что в .ini не только настройки среды/RTE содержатся. Всегда это "вручную" делалось, ну т.е., проверка наличия файла при запуске и создание файла с начальными настройками, если файла нет.
Была уже такая технология, называлась Code Interface Node. Модуль хранился в ресурсах и распаковывался в Temp при запуске программы. Но это было, пожалуй, единственное преимущество по сравнению с традиционными библиотеками. Минусов оказалось больше и в 2011 NI от такого подхода отказались.
Если хочется, никто не мешает хранить данные в тэгах - viewtopic.php?p=69358#p69358 Но в EXE, очевидно, записать ничего не получится, т.к. его придётся перекомпилировать. Поэтому возвращаемся к классике типа .ini.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение