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

Roslyn, (статическая?) линковка сборки при компиляции

18.07.2019, 11:23. Показов 1456. Ответов 9

Студворк — интернет-сервис помощи студентам
У меня в программе генерируется некоторый код на C# и затем компилируется при помощи CSharpCompilation.Create в EXE.
При этом есть некоторая рантайм библиотека для этого кода, скомпилированная заранее в DLL.
При компиляции, я подключаю эту библиотеку - тут всё хорошо. Вопрос вот в чём: можно ли теперь эту DLL встроить внутрь EXE?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.07.2019, 11:23
Ответы с готовыми решениями:

статическая линковка VS2008
Доброго вам времени, вопрос следущий: как сделать чтобы в vs2008 все длл линковались статически, тоесть чтобы ехешник работал сам по себе

.NET статическая линковка
Доброго времени суток! Похожую тему нашел только двухлетней давности, по этому решил создать новую. Собственно, вопрос вот в чём....

Статическая линковка?
Куку, хотелось бы узнать, можно ли как то упаковать программу(1.exe) и библиотеку (.dll), которую использует программа и которая лежит...

9
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
18.07.2019, 11:36
ILMerge.
1
Заблокирован
18.07.2019, 11:42  [ТС]
Мне б краткий совет, как это в коде реализовать
Но за ссылку на исходники всё равно спасибо, поковыряюсь, может пойму.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
18.07.2019, 12:35
Цитата Сообщение от NightmareZ Посмотреть сообщение
как это в коде реализовать
После компиляции всех сборок просто запускайте этот процесс с нужными параметрами.

Цитата Сообщение от NightmareZ Посмотреть сообщение
за ссылку на исходники всё равно спасибо
Там не в исходниках суть, а в документации — крутите страницу вниз, там показано как пользоваться.
Скомпилированную версию можете с нугета утянуть.
0
Заблокирован
18.07.2019, 12:43  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Там не в исходниках суть, а в документации — крутите страницу вниз, там показано как пользоваться.
Ещё раз. Моя программа генерирует C# код, а потом из него компилирует EXE. Она это будет делать и у клиентов. Клиенты не будут заморачиваться с ILMerge, им нужна просто генерация EXE. С собой тащить ILMerge - тоже не вариант. Нужно, чтобы была одна моя программа, которая кроме того, что она сейчас компилирует EXE, ещё в него мержила существующую DLL.
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
18.07.2019, 13:35
Цитата Сообщение от NightmareZ Посмотреть сообщение
С собой тащить ILMerge - тоже не вариант. Нужно, чтобы была одна моя программа
Добавьте ссылку на ILMerge.exe в ваш проект и используйте класс ILMerging.ILMerge
Как пользоваться классом смотрите тут https://github.com/dotnet/ILMe... ILMerge.cs (метод Main)
C помощью ILMerge слепите ваше приложение и ILMerge чтобы получить один файл

Добавлено через 1 минуту
Ну или просто скомуниздить весь код этого проекта в ваш
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
18.07.2019, 13:38
Цитата Сообщение от NightmareZ Посмотреть сообщение
Ещё раз
Я еще с первого раза понял, спасибо.

Цитата Сообщение от NightmareZ Посмотреть сообщение
Клиенты не будут заморачиваться с ILMerge, им нужна просто генерация EXE.
Клиентам и не надо заморачиваться — вы сами можете в своей же программе вызывать ILMerge после компиляции сборок.
Почитайте документацию по предоставленной ссылке — там же написано, что ее можно использовать программно:
ILMerge is packaged as a console application. But all of its functionality is also accessible programmatically.
Цитата Сообщение от NightmareZ Посмотреть сообщение
С собой тащить ILMerge - тоже не вариант.
Почему нет? Ваша программа одним файлом поставляется?
Если нет, то в чем проблема тащить еще один файл? Если да, то в чем проблема вшить зависимость на ILMerge в вашу программу?
0
Заблокирован
18.07.2019, 13:51  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Если нет, то в чем проблема тащить еще один файл?
Проблема в том, что использовать сторонний код крайне нежелательно (не важно, в виде программы или в виде непосредственно кода) - таковы условия задачи.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
18.07.2019, 13:58
Цитата Сообщение от NightmareZ Посмотреть сообщение
использовать сторонний код крайне нежелательно (не важно, в виде программы или в виде непосредственно кода) - таковы условия задачи.
А, ну если такое дело, то могу только посоветовать посмотреть исходники того же ILMerge и написать свою реализацию на их основе.
1
Эксперт .NET
 Аватар для Usaga
14293 / 9378 / 1352
Регистрация: 21.01.2016
Сообщений: 35,360
19.07.2019, 17:10
Цитата Сообщение от NightmareZ Посмотреть сообщение
Проблема в том, что использовать сторонний код крайне нежелательно (не важно, в виде программы или в виде непосредственно кода) - таковы условия задачи.
Просто берите исходники ILMerge и встраивайте в своё приложение. Обычно, когда ставят такие идиотские условия, слабо понимают, что просят и в ваши исходники лезть не станут. А если полезут, то... Любой фрагмент со Stack Overflow или пример отсюда - тоже сторонний код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.07.2019, 17:10
Помогаю со студенческими работами здесь

Статическая линковка - ошибка компиляции
Собрал статическую Qt 5.2.0 (по этой инструкции с указанием -debug-and-release). Сборка прошла без ошибок, всё великолепно. Создал новый...

Статическая линковка VS динамическая линковка
Существует два типа линкования библиотек: статическое и динамическое. При статической линковке все подключённые к проекту библиотеки .lib...

Статическая линковка
Появилась необходимость прилинковать статическую библиотеку (GLFW) к проекту на C++. Я подключил заголовки, а вот саму библиотеку...

Статическая линковка
Всем привет. Я скомпилировал простую программу с помощью mingw64, набрав в консоли: У меня запускается нормально, а у друга требует...

Статическая линковка
Здравствуйте! У меня есть несколько файлов и мне нужно сделать из них статическую библиотеку вроде всё сделал , но конечный файл не...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru