Когда я делаю ссылку на проект в Visual Studio, нужно ли мне включать библиотеки DLL для этих проектов при развертывании? - PullRequest
2 голосов
/ 28 января 2010

У меня есть консольное приложение и два проекта библиотеки классов.

Консольное приложение должно проецировать ссылки на проекты библиотеки классов.

Когда я строю, он генерирует DLL для этих двух проектов. Нужно ли включать их в exe-файл моих консольных приложений? Есть ли способ, которым я могу сделать это, чтобы мне не нужно было включать эти 2 DLL?

В идеале, я хотел бы иметь один exe.

Ответы [ 5 ]

5 голосов
/ 28 января 2010

Вы должны включить любые ссылочные сборки, так как они являются зависимостями вашего приложения.

Однако, как говорится, Microsoft предлагает инструмент под названием ILMerge , который позволит вам комбинировать сборки зависимостей сВаш исполняемый файл для создания единой сборочной сборки, которую можно отправить клиентам.

2 голосов
/ 28 января 2010

Выезд ILMerge .

1 голос
/ 28 января 2010

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

ilmerge /target:winexe /out:MyProg.exe Program.exe ClassLib1.dll ClassLib.dll

Visual Studio не предоставляет встроенного способа сделать это, поэтому вам нужно будет выполнить указанную выше команду вручную, как событие после сборки, или добавить ее вручную в файл .csproj.

0 голосов
/ 28 января 2010

Будьте осторожны с ILMerge и убедитесь, что вы понимаете влияние производительности на этот путь.

0 голосов
/ 28 января 2010

Вы должны быть в состоянии сделать это, выбрав ссылки и установив для свойства «Копировать локально» значение false.

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