У мене є великий файл рішення 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. Я перейшов від декількох менших .slns більше до однієї великої .slnсам лише тому, що VS таким чином спричиняє менше проблем ... Отже, можливо, подальший припущення передбачає не обов'язково найкраще рішення оригінального питання? ;-)