Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 27.03.2018
Сообщений: 8

Как dll, jpeg, bmp, txt упаковать в один exe

01.05.2018, 21:45. Показов 2292. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Помогите разобраться со сборкой в один exe? Например, для test.exe требуется test.dll , test.jpeg , test.bmp и test.txt, а нужно чтоб все это было упаковано в test.exe. Пробовал ilmerge - не подходит (работает только с Framework 4.0)

В папке лежит три файла: test.txt("Ok!"), DllForTestOneFile.dll и TestOneFile.exe

код для теста:
Кликните здесь для просмотра всего текста

код dll
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
using System.IO;
 
namespace DllForTestOneFile
{
    public static class ClassInDll
    {
        public static string DoString()
        {
            string s = "";
            try {
                var sr = new StreamReader("test.txt");
                s += sr.ReadToEnd(); // вижу dll и txt
            } catch (Exception) {
                s += "Not so good"; // вижу только dll
            }
            return s;
        }
    }
}
Код для формы с кнопкой
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Windows.Forms;
using DllForTestOneFile;
 
namespace TestOneFile
{
    public class FormForTest : Form
    {
        #region Designer
        private System.ComponentModel.IContainer components = null;
        private System.Windows.Forms.Button button1;
        protected override void Dispose(bool disposing)
        {
            if (disposing) {
                if (components != null) {
                    components.Dispose();
                }
            }
            base.Dispose(disposing);
        }
        public FormForTest()
        {
            this.button1 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // button1
            // 
            this.button1.Location = new System.Drawing.Point(79, 97);
            this.button1.Name = "button1";
            this.button1.Size = new System.Drawing.Size(75, 23);
            this.button1.TabIndex = 0;
            this.button1.Text = "button1";
            this.button1.UseVisualStyleBackColor = true;
            this.button1.Click += new System.EventHandler(this.Button1Click);
            // 
            // MainForm
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(284, 261);
            this.Controls.Add(this.button1);
            this.Name = "MainForm";
            this.Text = "TestOneFile";
            this.ResumeLayout(false);
            ;
        }
        #endregion
        
        void Button1Click(object sender, EventArgs e)
        {
            MessageBox.Show(ClassInDll.DoString());
        }
    }
    
    #region [STAThread]
    internal sealed class Program
    {
        [STAThread]
        private static void Main(string[] args)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new FormForTest());
        }
    }
    #endregion
}


Перекопал весь Google, habr, cyber и stack, но так и не решил проблему объединения.

Не по теме:

находил решение у китайцев, но они шьют только dll в exe.

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.05.2018, 21:45
Ответы с готовыми решениями:

Упаковать exe и dll в один exe файл
Добрый день! Для защиты использую IlProtector. На выходе получается exe и 2 dll. Я хочу упаковать эти три файла в один exe. Что для...

Упаковать Dll в Exe
Не могу понять как с помощью ILMerge вшить DLL в EXE Есть Dll (Ionic.Zip) Добавил в References её, чтобы затем использовать в using...

Как множество dll собрать в один dll или exe файл?
Сделал тестовый проектик по работе с БД (Entity Framework), скомпилировал и как глянул в папку Debug....., а там куча dll файлов. Путем...

8
 Аватар для Fleder
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
02.05.2018, 09:56
Цитата Сообщение от Artificer Посмотреть сообщение
Помогите разобраться со сборкой в один exe? Например, для test.exe требуется test.dll , test.jpeg , test.bmp и test.txt, а нужно чтоб все это было упаковано в test.exe.
Это можно осуществить с помощью ресурсов.
Надо чтобы test.dll, test.jpeg, test.bmp и test.txt стали ресурсами для test.exe.

Картинки и текст легко можно сделать ресурсами.
С библиотекой немного сложнее. Почитать можно тут.

Цитата Сообщение от Artificer Посмотреть сообщение
Перекопал весь Google, habr, cyber и stack, но так и не решил проблему объединения.
Наверное, потратили на это пару лет, не меньше...
0
0 / 0 / 0
Регистрация: 27.03.2018
Сообщений: 8
02.05.2018, 14:07  [ТС]
День добрый.
По ссылке разобраться не получилось.. смотрел ее.

Кликните здесь для просмотра всего текста

1)Добавляем библиотеку в References. В Solution Explorer (колонка с файлами справа) правой кнопкой мыши по References - выбираем "Add Reference...", вкладка Browse, выбираем dll, ОК.
2)Открываем список References всё в том же Solution Explorer (просто клик левой кнопкой мыши), находим нашу подключенную библиотеку. Кликаем правой кнопкой мыши и выбираем Properties. Устанавливаем параметр "Copy Local" в False. Всё теперь в коде пишем using MyDll; и пользуемся классами библиотеки.
3)Добавляем в ресурсы файл *.dll. В меню Project > Properties > Resources > жмакаем Add Resource > выбираем снова нашу длл (либо сжатую длл архиватором)> Ok. Всё теперь появится в проекте папка Resources. Следите чтобы у ресурсов стояла опция "Copy to Output Directory" в положении Do not copy.
4)В файлик App.cs или App.xaml.cs (у кого как) добавляем код


По первому пункту все понятно, добавить в Referens через brouse, сделал;
По второму - все предельно понятно;
По третьему - не получается найти.. (приложил PrintScreen);
По четвертому - нет такого файла, опять тупик.

Рассчитывал на решение по типу ilmerge, не встречали подобного? Или, если возможно, поясните предлагаемое решение?

Не по теме:

Кликните здесь для просмотра всего текста
потратил на это день.
Цитата Сообщение от Fleder Посмотреть сообщение
Наверное, потратили на это пару лет, не меньше...

Миниатюры
Как dll, jpeg, bmp, txt упаковать в один exe  
0
 Аватар для Fleder
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
02.05.2018, 14:14
Цитата Сообщение от Artificer Посмотреть сообщение
По третьему - не получается найти.. (приложил PrintScreen);
Это описание шагов для Visual Studio, надо полагать.
А у вас какая-то другая IDE.
1
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
02.05.2018, 14:17
Artificer, для начала смените SharpDevelop на VS. Потом можно заюзать nuget пакет Costura.Fody (github).
0
02.05.2018, 14:20  [ТС]

Не по теме:

Цитата Сообщение от Someone007 Посмотреть сообщение
смените SharpDevelop на VS
Уж очень привык к этой IDE, к тому же она совершенно бесплатна и без каких-либо ограничений
и да, по этому пакету так же пытался разобраться, но не осилил.. возможно и правда пора менять

0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
02.05.2018, 14:24
Цитата Сообщение от Artificer Посмотреть сообщение
Уж очень привык к этой IDE, к тому же она совершенно бесплатна и без каких-либо ограничений
Только вот эта IDE умерла года 2 назад, и не поддерживает актуальные версии C#, nuget и т.д.
1
Эксперт .NET
 Аватар для Usaga
14136 / 9359 / 1350
Регистрация: 21.01.2016
Сообщений: 35,176
02.05.2018, 17:36
Цитата Сообщение от Artificer Посмотреть сообщение
к тому же она совершенно бесплатна
А Visual Studio Community дофига платная?
1
0 / 0 / 0
Регистрация: 27.03.2018
Сообщений: 8
02.05.2018, 19:15  [ТС]
Уже качаю )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.05.2018, 19:15
Помогаю со студенческими работами здесь

Как объеденить файлы dll с exe ? Чтобы в итоге был только один exe файл
У меня есть 15 dll и 1 exe.Как их объеденить вместе?Чтобы получился только один EXEшник

Resize JPEG, BMP, GIF, PNG --> JPEG
Доброго дня! Стала задача сделать ресайзер. Требования: картинка по соотношению вес/качество должна примерно соответствовать...

Как объединить exe и dll в один файл
Привет всем! Подскажите, пожалуйста, возможно ли в проект VB.NET (2008 - 2012) добавить стороннюю open source библиотеку DLL так,...

Как объединить exe и Dll в один файл
Привет! У меня есть файл: Exe DLL Файл exe не запускается без DLL Как можно соеденить эти 2 файла? Чтобы была токо exe(А...

Возможно ли собрать .exe и несколько .dll в один .exe?
Просто написал программку, получилось >6 .dll файлов, с этим ничего нельзя поделать без "отучения Qt"?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru