CA0060

Impossible de charger les assemblys par référence indirecte.

Cet avertissement se produit si l’outil d’analyse ne parvient pas à charger des assemblys auxquels l’assembly en cours d’analyse fait référence de manière indirecte. Une « référence indirecte » désigne un assembly de référence auquel fait référence l’un des assemblys de l’assembly d’analyse. Supposons par exemple que l’analyse du code (FxCop) analyse l’assembly A, que l’assembly « A » fasse référence à l’assembly « B » et l’assembly « B » à l’assembly « C », mais que « A » ne fasse pas référence à l’assembly « C ». L’assembly « C » constitue alors une référence indirecte, et l’assembly « B » une référence directe.

L’impossibilité de charger des assemblys peut provoquer l’erreur CA0001 à d’autres emplacements, car des états inattendus sont susceptibles d’en résulter. Si vous utilisez l’outil d’analyse du code managé dans Visual Studio, voici quelques-unes des raisons qui peuvent provoquer l’avertissement CA0060 :

  • L’assembly d’entrée a été remplacé et pointe désormais vers un assembly qui fait référence à d’autres assemblys en dehors de la liste des références dans le fichier projet Visual Studio.

  • Un projet est modifié de façon à appeler une étape de build personnalisée avant l’exécution de FxCopCmd.exe, et le processus de build personnalisé ajoute d’autres références à l’assembly d’entrée. L’avertissement CA0060 est généré.

  • Pour faire référence à des assemblys en C#, vous pouvez utiliser ForcedUsing dans VCPROJ, en remplaçant la ligne de commande de façon à transmettre /FU ou en ajoutant #using <Some.dll> dans la source uniquement.

  • Un assembly tiers présente des références privées à d’autres assemblys dont vous n’avez pas besoin pour compiler et exécuter votre code.

Dans tous les cas, la résolution de ce problème consiste à ajouter la référence manquante au projet Visual Studio proprement dit.

Voir aussi