У меня большой файл решения c # (~ 100 проектов), и я пытаюсь улучшить время сборки. Я думаю, что «Копировать Локальный» во многих случаях расточителен для нас, но я задаюсь вопросом о лучших практиках.
В нашем .sln у нас есть приложение A в зависимости от сборки B, которая зависит от сборки C. В нашем случае, есть десятки «B» и несколько «C». Поскольку все они включены в .sln, мы используем ссылки на проекты. Все сборки в настоящее время встроены в $ (SolutionDir) / Debug (или Release).
По умолчанию Visual Studio помечает эти ссылки на проекты как «Копировать локально», что приводит к тому, что каждый «C» копируется в $ (SolutionDir) / Debug один раз для каждого «B», который собирается. Это кажется расточительным. Что может пойти не так, если я просто отключу «Копировать локальный»? Что делают другие люди с большими системами?
СЛЕДОВАТЬ ЗА:
Множество ответов предлагают разбить сборку на более мелкие файлы .sln ... В приведенном выше примере я сначала собрал бы базовые классы "C", а затем основную часть модулей "B", а затем несколько приложений ". А». В этой модели мне нужно иметь не-проектные ссылки на C из B. Проблема, с которой я сталкиваюсь, заключается в том, что «Debug» или «Release» запекаются на пути подсказки, и я заканчиваю сборку выпусков сборки «B» против отладочных сборок "C".
Для тех из вас, кто разделил сборку на несколько файлов .sln, как вы справляетесь с этой проблемой?
<Private>True</Private>
в csproj?
.sln
на более мелкие , ломает Automagic расчета Взаимозависимости VS по <ProjectReference/>
с. Я сам перешел от нескольких меньших .sln
s к одному большому .sln
только потому, что таким образом VS вызывает меньше проблем ... Итак, может быть, продолжение предполагает не обязательно лучшее решение исходного вопроса? ;-)