Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Однако вы можете объединить их в один файл DLL или EXE, используя

Ответ 2

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

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

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

Ответ 3

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

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

Вам нужно использовать netmodules.

Ответ 4

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

Ответ 5

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

ILMerge