Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/43: Рейтинг темы: голосов - 43, средняя оценка - 5.00
4 / 3 / 1
Регистрация: 18.11.2018
Сообщений: 39

Скомпилировать автономный EXE

09.05.2019, 07:28. Показов 8836. Ответов 25

Студворк — интернет-сервис помощи студентам
Вот так выглядит содержимое папки Release.
Я локализовал приложение, можно как-то запихать вот это всё в EXE? Как портабельное приложение
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.05.2019, 07:28
Ответы с готовыми решениями:

Скомпилировать .exe файл
Доброго времени суток! У меня проблема, прога рабочая, но при запуске от файла .exe, не хочет видеть .xml файл, из под Visual Studio, все...

Скомпилировать проект в один файл из двух файлов exe и картинки
Ребят подскажите пожалуйста, у меня есть только одна форма и картинка. вопрос как собрать сборку в один exe? сейчас получается у меня...

Как скомпилировать C# проект в .exe файл?
Как скомпилировать C# проект в .exe файл? И взять, скопировать и запустить на любом компьютере без всяких программ? (На Windows). ...

25
Эксперт .NET
 Аватар для Usaga
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,381
09.05.2019, 08:35
Palm_Tree, откуда берётся это нездоровое желание получить монолитный EXE? Типа пользователю будет удобно? Нет, не будет. Ему удобно по ярлыку на рабочем столе щёлкнуть, а сколько там рядом с EXE файлов ему до фонаря. Вы же именно так браузер запустили из под которого эту тему создали, так ведь?

А в этой папке из лишнего только файл с символами для отладки - *.pdb. Его генерацию можно отключить в настройках релизной конфигурации проекта. Да и то, стоит ли?
1
4 / 3 / 1
Регистрация: 18.11.2018
Сообщений: 39
09.05.2019, 09:10  [ТС]
Ну есть же куча мелких портабельных приложений, у которых монолитный ехе
0
Эксперт .NET
 Аватар для Rius
13129 / 7690 / 1676
Регистрация: 25.05.2015
Сообщений: 23,461
Записей в блоге: 14
09.05.2019, 09:15
Palm_Tree, и есть дохрена приложений, состоящих из множества файлов. И что?
Монолитный, да? Без установленного Net Framework не запустится. Без Windows не запустится.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
09.05.2019, 11:05
На .NET Core 3.0 Preview 5 можно портировать, там уже можно "компилить" в один exe, но это просто иллюзия...
На самом деле создается само распаковывающийся архив, который при первом запуске извлекает все файлы на диск и потом запускает программу с диска...
А еще размер такого монолитного бинарника в 125МБ совсем не радует...
В .NET Core 3.0 Preview 6 обещают прикрутить ILLink, что должно помочь уменьшить размер выходного бинарника в несколько раз, я уже тестировал, бинарник действительно получается меньше (около 20-25 МБ), но не запускается...

Добавлено через 1 час 2 минуты
Протестировал daily build .NET Core, там для WinForms собирается монолитный exe размером 52МБ и он даже запускается. Для WPF выдает ошибку если использовать ILLInk, без ILLInk собирается exe в 136МБ.
1
4 / 3 / 1
Регистрация: 18.11.2018
Сообщений: 39
09.05.2019, 11:43  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Монолитный, да?
стандартный калькулятор, calc.exe, вполне себе живёт монолитно, нет?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
09.05.2019, 11:45
Цитата Сообщение от Palm_Tree Посмотреть сообщение
стандартный калькулятор, calc.exe, вполне себе живёт монолитно, нет?
Он как бы на C++ написан, хотя есть и UWP версия, которая без рантайма не стартанет...
Ждите .NET 5 через 1.5 года, тогда будете C# в натив компилить как C++...
0
Эксперт .NET
 Аватар для Rius
13129 / 7690 / 1676
Регистрация: 25.05.2015
Сообщений: 23,461
Записей в блоге: 14
09.05.2019, 11:46
Цитата Сообщение от Palm_Tree Посмотреть сообщение
стандартный калькулятор, calc.exe, вполне себе живёт монолитно
А он разве на .Net?
Самая обычная игра GTA5 состоит из 317 файлов суммарным объёмом 83 ГБ. Хотите объединить их в один exe?
1
4 / 3 / 1
Регистрация: 18.11.2018
Сообщений: 39
09.05.2019, 11:49  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
суммарным объёмом 83 ГБ
понятно что не все приложения рационально пихать в один exe, но ведь есть и маленькие проекты в 100кб, почему их нельзя скомпилить в монолитный exe, тем более если они подразумевает портабельность?
0
Эксперт .NET
 Аватар для Rius
13129 / 7690 / 1676
Регистрация: 25.05.2015
Сообщений: 23,461
Записей в блоге: 14
09.05.2019, 12:02
Цитата Сообщение от Palm_Tree Посмотреть сообщение
но ведь есть и маленькие проекты в 100кб, почему их нельзя скомпилить в монолитный exe
Можно.
А вот зачем? Можете обосновать?

Цитата Сообщение от Palm_Tree Посмотреть сообщение
тем более если они подразумевает портабельность?
Портабельность вовсе не подразумевает единый exe. Портабельность подразумевает отсутствие необходимости установки в реестр/каталоги ОС, и хранение всего необходимого в своём каталоге ("всё своё ношу с собой").

И по поводу калькулятора - вот такой вот он монолитный и автономный, на другой версии ОС уже не запускается:
0
4 / 3 / 1
Регистрация: 18.11.2018
Сообщений: 39
09.05.2019, 12:09  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
"всё своё ношу с собой"
вот мне и кажется, что один ехе носить легче, чем папку
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
09.05.2019, 12:12
Цитата Сообщение от Palm_Tree Посмотреть сообщение
почему их нельзя скомпилить в монолитный exe, тем более если они подразумевает портабельность?
Потому что платформа .NET Framework и не подразумевает создание портабельных приложений. Вам как минимум еще нужен .NET Runtime, которого может не оказаться в системе, на которой вы запускаете свое приложение.

А .NET Core уже создавался с возможностью создания портабельных приложений, но не однофайловых. К тому же в первых версиях (1.x, 2.x) нет вообще никакой поддержки GUI из коробки. В версии .NET Core 3.0 (которая выйдет в сентябре 2019 года, сейчас доступна как Preview) добавят поддержку GUI для Windows (WinForms, WPF), а так же сборку в один исполняемый файл, но размер этого файла все равно будет десятки мегабайт (т.к. он включает в себя .NET Core Runtime).

В дальнейшем работы по улучшению портабельности продолжатся и уже в ноябре 2020 года выйдет .NET 5, где можно будет компилировать C# не просто в один файл, а в нативный исполняемый файл, что позволит существенно уменьшить его размер.
1
4 / 3 / 1
Регистрация: 18.11.2018
Сообщений: 39
09.05.2019, 12:12  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
А вот зачем? Можете обосновать?
хочу
у меня всего-то ресурс с русской локализацией, было бы клёво, если бы можно было его засунуть в ехе и не париться, а иначе получается папка, в которой лежит ехе и две папки с ресурсом для русского языка в каждой
0
Эксперт .NET
 Аватар для Rius
13129 / 7690 / 1676
Регистрация: 25.05.2015
Сообщений: 23,461
Записей в блоге: 14
09.05.2019, 12:16
Цитата Сообщение от Palm_Tree Посмотреть сообщение
вот мне и кажется, что один ехе носить легче, чем папку
Кажется.
На флешке без разницы, что носить. В интернете выкладывают архивы либо инсталляторы.
Некоторые утилиты, поставляемые в виде одного exe, когда приходится сохранять настройки - сохраняют их рядом с собой в файл. И, неожиданно(!), при необходимости перенести и эти настройки приходится прилагать дополнительные усилия: найди файл, выдели, скопируй, или , внезапно(!), заархивируй всё вместе.

Добавлено через 1 минуту
Цитата Сообщение от Palm_Tree Посмотреть сообщение
было бы клёво, если бы можно было его засунуть в ехе и не париться
Взамен у вас появятся ещё более интересные проблемы с тем, как его высунуть оттуда.
Цитата Сообщение от Palm_Tree Посмотреть сообщение
а иначе получается папка, в которой лежит ехе и две папки с ресурсом для русского языка в каждой
Что в этом плохого?

Добавлено через 56 секунд
Palm_Tree, рядом с названием своей темы в первом сообщении посмотрите метки - ссылки.
0
Эксперт .NET
 Аватар для Usaga
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,381
10.05.2019, 12:36
Цитата Сообщение от Palm_Tree Посмотреть сообщение
вот мне и кажется, что один ехе носить легче, чем папку
Чем легче? Вы это руками носить собрались, каждый файлик вручную копировать? И кому легче? Вам, решившему героически воевать с самостоятельно же придуманной проблемой? Пользователю, которому должно быть до фонаря сколько файлов у вашего приложения и где они все лежат?
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
10.05.2019, 22:01
вообще я согласен с Palm_Tree, чистый ехе это красиво
разумеется на работе я создаю софт на многие сотни файлов и никого это не парит, были даже установщики более 1гб..но это софт для скота, никакой душой там и не пахнет даже
у меня например к роутеру утилита winbox.exe на 1552 килобайта, просто лежит в конкретной папке, при переустановке системы я создаю ярлык и всё
никаких архивов, установщиков, какой-либо подготовки к запуску - просто дабл клик, я это уважаю
0
Эксперт .NET
 Аватар для Rius
13129 / 7690 / 1676
Регистрация: 25.05.2015
Сообщений: 23,461
Записей в блоге: 14
10.05.2019, 22:02
Никакой разницы нет с многофайловой программой.
0
 Аватар для m0nax
1274 / 975 / 113
Регистрация: 12.01.2010
Сообщений: 1,971
10.05.2019, 22:10
если по теме я уверен есть какой-то способ, надо раскурить механизм загрузки ресурсов.
Я когда-то вообще делал в рантайме вытаскивание из внедренных ресурсов ехе нативного файла sqllite в зависимости от платформы 32/64 бита
я бы начал смотреть где-то со стороны события AppDomain.AssemblyLoad (или как его там студия подскажет)
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
10.05.2019, 22:37
Цитата Сообщение от m0nax Посмотреть сообщение
Я когда-то вообще делал в рантайме вытаскивание из внедренных ресурсов ехе нативного файла sqllite в зависимости от платформы 32/64 бита
Установщик .NET Framework тоже из ресурсов будете доставать? Хотя о чем это я, без .NET Framework до запуска дело вообще не дойдет...
0
Эксперт .NET
 Аватар для Usaga
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,381
11.05.2019, 05:28
Цитата Сообщение от m0nax Посмотреть сообщение
чистый ехе это красиво
Красиво - это ярлык на рабочем столе или команда в консоли. Запуск одним действием без необходимости даже знать где лежит EXE и сколько рядом с ним файлов.

А одинокий EXE больше про нездоровый перфекционизм оторванный от реальности. Хотя, если нормальные пользователи для вас - скот, то дискутировать особо не имеет смысла.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.05.2019, 05:28
Помогаю со студенческими работами здесь

Как скомпилировать два проекта в 1 exe файл
У меня такая проблема. Моя программа состоит из 2 проектов. После компиляции у меня создаются 2 exe файла, почему??? И как сделать чтоб...

Динамически скомпилировать exe-файл, при запуске которого будет выводиться заданная информация
Не подскажите или покажете пример Вот например есть форма там: 1 техтбох 1 бутон Ты водишь в техтбох 123 и жмёшь бутон в папке с...

Forms, скомпилировать EXE. Error - ionic.zip
Добрый день знатоки Будьте так любезны помочь скомпилировать эту сборку в exe. Выдаёт ошибки: Код: using...

Как скомпилировать проект в .exe для автономной работы на любом другом ПК
Добрый вечер! Подскажите, как скомпилировать проект windows forms со всеми библиотеками, которые он использует, в один .exe файл, чтобы...

Можно ли сделать автономный Exe файл?
Подскажите пожалуйста, возможноли сделать полноценный Exe файл, который запускался бы без наличия JRE?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru