Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/65: Рейтинг темы: голосов - 65, средняя оценка - 4.91
 Аватар для Vinemax
149 / 117 / 10
Регистрация: 12.09.2011
Сообщений: 785

Как объединить exe и dll в один файл

19.10.2012, 19:31. Показов 12899. Ответов 28

Студворк — интернет-сервис помощи студентам
Привет всем!

Подскажите, пожалуйста, возможно ли в проект VB.NET (2008 - 2012) добавить стороннюю open source библиотеку DLL так, чтобы при построении она не копировалась в выходной каталог, т.е. как бы находилась внутри программы в памяти? Дело в том, что я пишу свою программу на VB.NET, а необходимые мне функции реализовали на C#.NET. В общем, можно ли как-то интегрировать мою программу на VB.NET с классами на C#.NET так, чтобы в итоге получился один exe-шник без лишних библиотек на выходе?

Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2012, 19:31
Ответы с готовыми решениями:

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

Объединить EXE и DLL в один файл
Вопрос: как заставить кутэ при сборке инклудить *.lib в экзешник, к примеру ту же самую библиотеку ACE вовсе не вариант распространять...

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

28
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
19.10.2012, 19:55
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

https://www.cyberforum.ru/post2820520.html
https://www.cyberforum.ru/post1164180.html
https://www.cyberforum.ru/post3170887.html
Что-то да пригодится. У меня где-то утилита тут на форуме валялась. Но свои сообщения я не нашел
2
 Аватар для Vinemax
149 / 117 / 10
Регистрация: 12.09.2011
Сообщений: 785
19.10.2012, 20:55  [ТС]
Благодарю за ссылки и описания! Памирыч, а возможно ли использование C#-кода в одном проекте с VB-кодом, так чтобы получался один exe-шник?
0
Почетный модератор
 Аватар для Памирыч
23248 / 9160 / 1084
Регистрация: 11.04.2010
Сообщений: 11,014
19.10.2012, 20:59
Vinemax, я могу ошибаться, но после того как экзешник или Длл уже скомпилированы, то уже нет разницы, на чем они написаны - фрейм-то един...

Более того, IL Merge присоединяет к НЕТовскому экзешнику даже не .NET библиотеки (например, офисовские)
2
 Аватар для Vinemax
149 / 117 / 10
Регистрация: 12.09.2011
Сообщений: 785
19.10.2012, 21:24  [ТС]
Памирыч, ну сейчас у меня фактически проблема в том, что я пишу интерфейс на VB.NET, а другие ребята уже сделали функционал на C#.NET. Все исходники у меня и мне их нужно "упаковать" в один проект, чтобы на выходе получался один exe-шник без дополнительных либов. Сейчас вот юзаю Visual Studio 2012, так вот там успешно добавил в проект на VB исходники C#... не матюкается и проект успешно строится без ошибок. Но вот теперь не могу сослаться на функции исходников на C#. Как-то надо объявить Imports или напрямую New указать, а оно не видит то, что написано на C#
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
26.03.2015, 19:05
Не надо ничего объединять в один файл. Просто добавь ссылку на готовую библиотеку.
1
 Аватар для Vinemax
149 / 117 / 10
Регистрация: 12.09.2011
Сообщений: 785
30.03.2015, 23:08  [ТС]
Замабувараев, видимо, не совсем понял что мне нужно. Моя программа это конечная инсталляция в итоге и задача была именно на выходе при окончательном построении проекта получить единый exe-файл без дополнительных библиотек, сколько бы их не входило в проект. Если обратишь внимание, то все подключенные к твоему проекту библиотеки при построении ложатся в ту же папку, где и exe-шник, более того, они там и ДОЛЖНЫ присутствовать. А мне нужно было всё в одно приложение собрать, в один файл. По совету Памирыча уже долгое время пользуюсь ILMerge, шикарная вещь, реально всё складывает в один exe.
0
8 / 8 / 0
Регистрация: 15.10.2016
Сообщений: 11
09.09.2018, 08:32
Добавить файл DLL в ресурсы. FileType=Binary
Добавить файл DLL в ссылки. Копировать локально=False
Добавить код в ApplicationEvents.vb

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Partial Friend Class MyApplication
 
        Public WithEvents APP_DOM As System.AppDomain = System.AppDomain.CurrentDomain
 
 
        Private Function APP_DOM_AssemblyResolve(ByVal sender As Object, ByVal args As System.ResolveEventArgs) As 
                                                                                System.Reflection.Assembly Handles APP_DOM.AssemblyResolve
 
            On Error Resume Next
 
            If args.Name.Contains("Microsoft.WindowsAPICodePack.Shell") Then
                Return Reflection.Assembly.Load(My.Resources.Microsoft_WindowsAPICodePack_Shell)
            Else
                If args.Name.Contains("Microsoft.WindowsAPICodePack") Then
                    Return Reflection.Assembly.Load(My.Resources.Microsoft_WindowsAPICodePack)
                Else
                    Return Reflection.Assembly.GetCallingAssembly
                End If
            End If
 
        End Function
 
End Class
5
Лень — мое второе и
 Аватар для Orlangur
3226 / 2414 / 687
Регистрация: 28.11.2014
Сообщений: 3,600
Записей в блоге: 3
09.09.2018, 12:36
Это ещё с 13 года висит в готовых решениях https://www.cyberforum.ru/post4766418.html
2
85 / 75 / 15
Регистрация: 18.01.2014
Сообщений: 359
23.10.2018, 07:10
Почему то с WindowsAPICodePack это не работает.

Свою dll, ItextSharp, FprnM1C.dll удалось по этому способу запрятать, а WindowsAPICodePack - никак.
Смущает, что в названии присутствуют 3 точки: Microsoft.WindowsAPICodePack.Shell.dll, может из-за этого ?...
0
8 / 8 / 0
Регистрация: 15.10.2016
Сообщений: 11
25.10.2018, 22:06
WindowsAPICodePack у меня прекрасно работает. Значит делаете что-то не так. Посмотрите скрины, все ли так
Миниатюры
Как объединить exe и dll в один файл   Как объединить exe и dll в один файл   Как объединить exe и dll в один файл  

1
8 / 8 / 0
Регистрация: 15.10.2016
Сообщений: 11
25.10.2018, 22:19
Запустите отладчик и проверьте срабатывает ли условие, если нет, то останавливайте отладчик вне условия и проверяйте что в ARGS.NAME показывает
1
 Аватар для Vinemax
149 / 117 / 10
Регистрация: 12.09.2011
Сообщений: 785
26.10.2018, 06:20  [ТС]
WindowsAPICodePack содержит ряд неуправляемых библиотек, которые не могут быть объединены в .NET-сборку, потому как в .NET-сборки объединяются только в .NET-сборки.
1
85 / 75 / 15
Регистрация: 18.01.2014
Сообщений: 359
26.10.2018, 12:56
Цитата Сообщение от Nikventura Посмотреть сообщение
Запустите отладчик и проверьте срабатывает ли условие
Условия не срабатывают

Мало того, в Arg.Name всегда одно и тоже: "ProgrammName.resources, Version 1.0.0.0 ....."

При этом в другие условия (библиотеки которых успешно внедрились) он тоже не заходит
0
 Аватар для XIST
1960 / 1061 / 148
Регистрация: 01.10.2009
Сообщений: 3,584
Записей в блоге: 1
26.10.2018, 18:37
[
Цитата Сообщение от Nikventura Посмотреть сообщение
WindowsAPICodePack у меня прекрасно работает
Цитата Сообщение от Vinemax Посмотреть сообщение
WindowsAPICodePack содержит ряд неуправляемых библиотек
я так же не понимаю, как такое может быть. WindowsAPICodePack содержит ряд неуправляемых библиотек. Он работает с Windows, как Вы можете их встраивать?
1
 Аватар для Vinemax
149 / 117 / 10
Регистрация: 12.09.2011
Сообщений: 785
27.10.2018, 03:48  [ТС]
XIST, взаимодействие с API Windows можно же реализовать и в .NET-сборках, просто сам пакет WindowsAPICodePack содержит неуправляемые библиотеки, написанные, видимо, на C++ или на Ассемблере, не суть, просто они неуправляемые и никак не могут быть прямо внедрены в .NET-сборку, только находиться рядом.

Добавлено через 22 минуты
Я, например, когда хочу собрать все библиотеки в один exe-шник, но они в свою очередь ссылаются на какие-то свои неуправляемые, в bat-файле для ILMerge указываю для объединения именно .NET-библиотеки, ну а неуправляемые оставляю "за бортом" в той же папке. Чтобы отличить неуправляемую библиотеку от .NET-библиотеки достаточно посмотреть её свойства файла... в .NET-библиотеках будет пунктик Assembly version, а в неуправляемых, как правило, вообще никаких пунктиков нет, ни о разработчике, ни о чем либо другом.
0
 Аватар для XIST
1960 / 1061 / 148
Регистрация: 01.10.2009
Сообщений: 3,584
Записей в блоге: 1
27.10.2018, 07:33
Цитата Сообщение от Vinemax Посмотреть сообщение
просто они неуправляемые и никак не могут быть прямо внедрены в .NET-сборку, только находиться рядом.
и я о том, я так же представлял
0
85 / 75 / 15
Регистрация: 18.01.2014
Сообщений: 359
27.10.2018, 19:32
Nikventura, проясните, как у вас работает???
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,255
Записей в блоге: 4
29.10.2018, 14:47
Цитата Сообщение от Vinemax Посмотреть сообщение
задача была … получить единый exe-файл без дополнительных библиотек… А мне нужно было всё в одно приложение собрать, в один файл.
Не могу понять для чего это нужно? Какую задачу решает?
0
85 / 75 / 15
Регистрация: 18.01.2014
Сообщений: 359
17.01.2019, 10:24
Всем привет!
Сегодня неожиданно вылезло такое неприятное: после объединения всего в 1 экзешник перестала работать опция "Создать приложение, допускающее одновременное выполнение только одной своей копии". Т.е. если раньше, до объединения запускалась только 1 копия приложения, то теперь при включенной этой галочке всё равно запускаются сколько угодной копий.

Что делать? Искать решение, откатить назад (разъединить экзешник) или делать собственную проверку на запуск только 1 копии?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.01.2019, 10:24
Помогаю со студенческими работами здесь

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

Объединить 2 dll файла и exe в один
В общем требуется упаковать 2 dll файла и exe файл в один, почитал уже кучу тем, везде советуют ilMerge, попытался сделать с помощью нее,...

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

Запаковка dll и exe в один исполняемый файл
подскажите как с помощью C# можно упаковать главные файлы клиента игры в 1 exe. что бы было понятнее опишу структуру папки. 1. есть...

Объединить exe и dll
В проекте находится решение самой программы и решение dll ки. Как сделать чтобы при компиляции dllка внедрялась в проект? т.е. не нужно...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru