один DLL, несколько проектов?

Действительно ли возможно вынудить мой файл решения C# сделать единственный DLL, содержащий все проекты в решении вместо одного DLL на проект? Этот чувак говорит, что это не возможно, но я замечаю, что это - сообщение с 2004. Я использую систему Visual Studio 2008 Команды, и это - приложение C#.

12
задан Sarah Vessels 6 January 2010 в 22:20
поделиться

5 ответов

Нет. Каждый проект будет скомпилирован в отдельную библиотеку или приложение.

Вы можете, однако, объединить их в один DLL или EXE файл, используя ILMerge пост-компиляцию.

20
ответ дан 2 December 2019 в 04:25
поделиться

Непосредственно с Visual Studio это невозможно, но можно объединять сборки, используя ILMerge . Это можно сделать, например, на этапе после сборки:

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

Если Ваш проект является проектом ASP.Net, Вы можете положиться на инструмент ASP.NET Merge Tool.

14
ответ дан 2 December 2019 в 04:25
поделиться

Это возможно, и даже было возможно в 2004 году.

Однако Visual Studio это не раскрывает.

Необходимо использовать нетмодули .

0
ответ дан 2 December 2019 в 04:25
поделиться

Можно создать скрипт MSBuild, который использует XSLT для объединения всех csproj-файлов в один, а затем собирает его. Вам не нужно будет копировать cs-файлы или что-то подобное, просто динамически генерируйте новый csproj-файл.

0
ответ дан 2 December 2019 в 04:25
поделиться

Никогда лично не делал этого, но похоже, что этот инструмент мог сделать это:

ILMerge

0
ответ дан 2 December 2019 в 04:25
поделиться