Eu tenho um arquivo de solução c # grande (~ 100 projetos) e estou tentando melhorar os tempos de compilação. Eu acho que "Copiar local" é um desperdício em muitos casos para nós, mas estou pensando nas melhores práticas.
Em nosso .sln, temos o aplicativo A, dependendo do conjunto B, que depende do conjunto C. No nosso caso, existem dezenas de "B" e um punhado de "C". Como todos estão incluídos no .sln, estamos usando referências de projeto. Todos os assemblies atualmente compilam em $ (SolutionDir) / Debug (ou Release).
Por padrão, o Visual Studio marca essas referências de projeto como "Copiar Local", o que resulta em cada "C" sendo copiado em $ (SolutionDir) / Debug uma vez para cada "B" criado. Isso parece um desperdício. O que pode dar errado se eu desligar a opção "Copiar local"? O que outras pessoas com sistemas grandes fazem?
ACOMPANHAMENTO:
Muitas respostas sugerem dividir a compilação em arquivos .sln menores ... No exemplo acima, eu criaria as classes de fundação "C" primeiro, seguidas pela maior parte dos módulos "B" e depois alguns aplicativos " UMA". Nesse modelo, preciso ter referências que não sejam do projeto a C de B. O problema que encontro é que "Debug" ou "Release" são inseridos no caminho da dica e acabo criando minhas compilações de Release "B" contra compilações de depuração de "C".
Para aqueles de vocês que dividiram a compilação em vários arquivos .sln, como gerencia esse problema?
<Private>True</Private>
em um csproj?
.sln
em menor quebra o cálculo da interdependência automagica de VS de <ProjectReference/>
s. Mudei de vários .sln
s menores para um grande .sln
só porque o VS causa menos problemas dessa maneira ... Então, talvez o acompanhamento esteja assumindo uma solução não necessariamente a melhor para a pergunta original? ;-)