У мене є великий файл рішення c # (~ 100 проектів), і я намагаюся покращити час збирання. Я думаю, що "Копіювати місцеве" в багатьох випадках для нас марно, але мені цікаво найкращим методом.
У нашому .sln у нас є додаток A залежно від складання B, яке залежить від складання C. У нашому випадку є десятки "B" і жменька "C". Оскільки всі вони включені у .sln, ми використовуємо посилання на проекти. Наразі всі збірки вбудовані у $ (SolutionDir) / Debug (або Release).
За замовчуванням Visual Studio позначає ці посилання на проект як "Copy Local", в результаті чого кожен "C" копіюється в $ (SolutionDir) / Debug один раз для кожного "B", який створюється. Це здається марнотратним. Що може піти не так, якщо я просто відключу "Copy Local"? Що роблять інші люди з великими системами?
СЛІДУВАТИ:
Дуже багато відповідей пропонують розділити збірку на менші .sln файли ... У наведеному вище прикладі я спочатку побудую основні класи "C", а потім основну частину модулів "B", а потім декілька додатків " А ". У цій моделі мені потрібно мати непроектні посилання на C від B. Проблема, з якою я стикаюся, полягає в тому, що "Налагодження" або "Випуск" потрапляє в підказковий шлях, і я закінчую будівництво моїх версій "B" проти налагодження складання "C".
Для тих, хто розділяє збірку на кілька .sln файлів, як ви керуєте цією проблемою?
<Private>True</Private>
у csproj?
.sln
на більш дрібні розбиває автоматичний розрахунок взаємозалежності VS <ProjectReference/>
s. Я перейшов від декількох менших .sln
s більше до однієї великої .sln
сам лише тому, що VS таким чином спричиняє менше проблем ... Отже, можливо, подальший припущення передбачає не обов'язково найкраще рішення оригінального питання? ;-)