J'ai un gros fichier de solution c # (~ 100 projets) et j'essaie d'améliorer les temps de construction. Je pense que "Copy Local" est un gaspillage dans de nombreux cas pour nous, mais je m'interroge sur les meilleures pratiques.
Dans notre .sln, nous avons l'application A dépendant de l'assemblage B qui dépend de l'assemblage C. Dans notre cas, il y a des dizaines de "B" et une poignée de "C". Comme ils sont tous inclus dans le .sln, nous utilisons des références de projet. Tous les assemblys sont actuellement construits dans $ (SolutionDir) / Debug (ou Release).
Par défaut, Visual Studio marque ces références de projet comme «Copier local», ce qui entraîne la copie de chaque «C» dans $ (SolutionDir) / Debug une fois pour chaque «B» généré. Cela semble inutile. Que peut-il se passer si je désactive simplement "Copier local"? Que font les autres personnes disposant de grands systèmes?
SUIVRE:
De nombreuses réponses suggèrent de diviser la construction en fichiers .sln plus petits ... Dans l'exemple ci-dessus, je construirais d'abord les classes de base "C", suivies de la plupart des modules "B", puis de quelques applications, " UNE". Dans ce modèle, j'ai besoin d'avoir des références non-projet à C à partir de B. Le problème que je rencontre là-bas est que "Debug" ou "Release" est intégré dans le chemin d'indication et je finis par construire mes versions Release de "B" contre les versions de débogage de "C".
Pour ceux d'entre vous qui ont divisé l'accumulation en plusieurs fichiers .sln, comment gérez-vous ce problème?
<Private>True</Private>
dans un csproj?
.sln
en plus petits rompt le calcul d'auto-dépendance de VS de <ProjectReference/>
s. Je suis passé de plusieurs plus petits .sln
à un seul gros .sln
moi-même juste parce que VS cause moins de problèmes de cette façon… Alors, peut-être que le suivi suppose une solution pas nécessairement la meilleure à la question originale? ;-)