0 votes

VS2005 reconstruit les projets .NET/CLI lors de modifications de détails de mise en œuvre dans les fichiers .cpp

Ma solution se compose de plusieurs bibliothèques/assemblages natifs, d'enveloppes C++/CLI et de bibliothèques/assemblages managés. Les projets d'enveloppe font référence à différents projets DLL natifs. Chaque fois que je change un détail d'implémentation dans un fichier .cpp d'une dépendance native, tous les projets CLI/.NET sont reconstruits (pas seulement liés, mais recompilés). Cela se produit également dans la configuration Debug (pas d'optimisation globale du programme). Y a-t-il une raison à ce comportement? Étant donné que la solution est assez volumineuse, la reconstruction prend beaucoup de temps, il serait donc préférable que VS évite toute reconstruction inutile.

1voto

David Gladfelter Points 2756

Ceci est un comportement attendu. Les assemblies .NET "dépendent" du DLL non géré et lorsque le DLL change, ils le détectent et se reconstruisent. L'unité de compilation d'un projet C++ non géré est un fichier .cpp. L'unité de compilation d'une assembly .NET est l'ensemble de l'assembly. Il n'y a aucun moyen de recompiler juste un fichier .cs (ou C++ managé).

Vous pouvez contourner cela en utilisant ::GetProcAddress() pour obtenir des pointeurs de fonction vers les opérations dans les DLL non gérés. Ensuite, vous pouvez supprimer la dépendance de l'assembly .NET sur le fichier .lib des DLL non gérés et il ne se recompilera plus à chaque fois que le .lib change.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X