Действительно ли возможно вынудить мой файл решения C# сделать единственный DLL, содержащий все проекты в решении вместо одного DLL на проект? Этот чувак говорит, что это не возможно, но я замечаю, что это - сообщение с 2004. Я использую систему Visual Studio 2008 Команды, и это - приложение C#.
Нет. Каждый проект будет скомпилирован в отдельную библиотеку или приложение.
Вы можете, однако, объединить их в один DLL или EXE файл, используя ILMerge пост-компиляцию.
Непосредственно с Visual Studio это невозможно, но можно объединять сборки, используя ILMerge . Это можно сделать, например, на этапе после сборки:
ilmerge /target:winexe /out:SelfContainedProgram.exe
Program.exe ClassLibrary1.dll ClassLibrary2.dll
Если Ваш проект является проектом ASP.Net, Вы можете положиться на инструмент ASP.NET Merge Tool.
Это возможно, и даже было возможно в 2004 году.
Однако Visual Studio это не раскрывает.
Необходимо использовать нетмодули .
Можно создать скрипт MSBuild, который использует XSLT для объединения всех csproj-файлов в один, а затем собирает его. Вам не нужно будет копировать cs-файлы или что-то подобное, просто динамически генерируйте новый csproj-файл.
Никогда лично не делал этого, но похоже, что этот инструмент мог сделать это: