У меня большой файл решения c # (~ 100 проектов), и я пытаюсь сократить время сборки. Я думаю, что «Копировать Локальный» во многих случаях для нас бесполезен, но меня интересуют лучшие практики.
В нашем .sln у нас есть приложение A, зависящее от сборки B, которое зависит от сборки C. В нашем случае есть десятки «B» и несколько «C». Поскольку все они включены в .sln, мы используем ссылки на проекты. Все сборки в настоящее время встроены в $ (SolutionDir) / Debug (или Release).
По умолчанию Visual Studio помечает эти ссылки на проекты как «Копировать локально», что приводит к тому, что каждый «C» копируется в $ (SolutionDir) / Debug один раз для каждого «B», который собирается. Это кажется расточительным. Что может пойти не так, если я просто отключу «Копировать локальный»? Что делают другие люди с большими системами?
Followup:
Множество ответов предлагают разбить сборку на более мелкие файлы .sln ... В приведенном выше примере я сначала собрал бы базовые классы "C", а затем большую часть модулей "B", а затем несколько приложения, «А». В этой модели мне нужно иметь не-проектные ссылки на C из B. Проблема, с которой я сталкиваюсь, заключается в том, что «Debug» или «Release» запекаются на пути подсказки, и я заканчиваю сборку выпусков сборки «B» против отладочных сборок "C".
Как справиться с этой проблемой для тех из вас, кто разбил сборку на несколько файлов .sln?