Компилировать проект с несколькими DLL-файлами в один EXE-файл без Visual Studio IDE - PullRequest
0 голосов
/ 16 октября 2018

При компиляции моего проекта я создаю файл DLL для каждого пространства имен и включаю их в EXE-файл, который я собираюсь построить.Моя проблема заключается в том, что это действие создает несколько файлов, а выходные данные не являются переносимыми.

Возможно ли (и как) включить все DLL-файлы в один EXE-файл?

Это сценарий сборки, который я сейчас использую для сборки проекта:

#!/bin/sh

if [ -d out ]; then
    rm -rf out/
fi;
mkdir out/

csc /nologo /target:library /out:out/StateMachine.Models.dll \
    StateMachine/Models/*.cs &&

csc /nologo /target:library /out:out/StateMachine.Builders.dll \
    /reference:out/StateMachine.Models.dll \
    StateMachine/Builders/*.cs &&

csc /nologo /target:exe /out:out/state-machine.exe \
    /reference:out/StateMachine.Models.dll \
    /reference:out/StateMachine.Builders.dll \
    StateMachine/Application.cs

Я использую этот сценарий, так как мой компьютер не может установить / запустить MSVS IDE.

1 Ответ

0 голосов
/ 16 октября 2018

Скомпилируйте ваш exe с помощью csc, а затем ILMerge библиотеки:

ilmerge /target:winexe /out:SelfContainedProgram.exe Program.exe ClassLibrary1.dll classLibrary2.dll

Есть альтернативы для Mono .

Примечание: библиотеки должныне быть подписанным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...