Résolution des problèmes liés aux extensions de fonctionnalités
Vous pouvez créer vos propres extensions de fonctionnalités, telles que les règles d'analyse du code personnalisées, les conditions de test unitaire de base de données, les générateurs de données, les types de refactorisation, les collaborateurs de génération et les collaborateurs de déploiement. Lorsque vous installez ces extensions de fonctionnalités, des problèmes peuvent empêcher le chargement de votre extension. Cette rubrique discute les problèmes les plus courants et les étapes que vous pouvez effectuer pour y remédier. Pour plus d'informations sur l'installation et l'enregistrement des extensions de fonctionnalités, consultez Comment : inscrire et gérer des extensions de fonctionnalité.
Premières étapes lorsqu'une extension de fonctionnalité ne se charge pas
Après avoir installé et enregistré votre extension de fonctionnalité, vous devez redémarrer Visual Studio. La première étape que vous devez effectuer une fois que vous avez redémarré Visual Studio consiste à afficher la Liste d'erreurs. Si une ou plusieurs extensions n'ont pas pu être chargées, les erreurs peuvent s'afficher dans la Liste d'erreurs. Dans le menu Affichage, cliquez sur Liste d'erreurs. Si une erreur du même type que l'erreur suivante apparaît, votre extension ne s'est pas chargée correctement :
Failed to load extension MyBuildContributor.ModelStatisticsReport. Exception message: Could not load type 'MyBuildContributor.ModelStatisticsReport' from assembly 'MyBuildContributor, Version 1.0.0.0, Culture=neutral, PublicKeyToken=34fdfd7e8ae7c7a8'.
Dans certaines situations, par exemple si aucun fichier .extensions.xml n'a été trouvé, votre extension ne sera pas chargée, mais aucune erreur n'apparaîtra.
Diagnostic du problème de chargement de votre extension
Les raisons pour lesquelles votre extension peut ne pas être chargée incluent les éléments suivants :
Le fichier d'extension contient une ou plusieurs erreurs
L'assembly d'extension n'est pas signé
Le fichier extensions.xml était introuvable
L'assembly d'extension était introuvable
Le code dans l'extension n'étend pas les classes correctes
Les classes ou membres dans l'extension n'ont pas les attributs corrects
Le fichier d'extension contient une ou plusieurs erreurs
La raison la plus courante de l'échec de chargement d'une extension repose sur le fait qu'une ou plusieurs des erreurs suivantes sont présentes dans votre fichier Extensions.XML :
Nom de type incorrect
Nom de l'assembly incorrect
Numéro de version incorrect
Jeton de clé publique
Pour plus d'informations sur la création d'un fichier extensions.xml, consultez Comment : inscrire et gérer des extensions de fonctionnalité.
L'assembly d'extension n'est pas signé
Si votre assembly d'extension n'est pas signé, il ne peut pas être chargé par Visual Studio. Pour signer un assembly d'extension, effectuez ces étapes :
Pour signer et générer l'assembly
Ouvrez la solution qui contient votre projet d'extension.
Dans le menu Projet, cliquez sur Propriétés de MonProjetExtension, où MonProjetExtension est le nom du projet qui contient l'extension de fonctionnalité que vous voulez signer.
Cliquez sur l'onglet Signature.
Cliquez sur Signer l'assembly.
Dans la zone Choisir un fichier de clé de nom fort, cliquez sur <Nouveau>.
Dans la boîte de dialogue Créer une clé de nom fort, en guise de nom du fichier de clé, tapez MaCléRéf.
(Facultatif) Vous pouvez spécifier un mot de passe pour votre fichier de clé de nom fort.
Cliquez sur OK.
Dans le menu Fichier, cliquez sur Enregistrer tout.
Dans le menu Générer, cliquez sur Générer la solution.
Ensuite, vous devez installer et enregistrer l'assembly afin qu'il soit chargé lorsque vous déployez des projets de base de données.
Le fichier Extensions.XML était introuvable
Si vous n'avez pas fourni de fichier XML pour enregistrer votre extension avec Visual Studio, votre extension ne sera pas chargée. En général, vous copiez le fichier MonAssembly.Extensions.XML dans le dossier %Program Files%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MesExtensions, où MonAssembly est le nom de votre extension.
Notes
Évitez de copier directement vos fichiers XML dans le dossier [Program Files]\Microsoft Visual Studio 10.0\VSTSDB\Extensions. L'intérêt d'utiliser un sous-dossier est d'empêcher toute modification accidentelle apportée aux autres fichiers fournis avec Visual Studio.
Pour plus d'informations sur la création d'un fichier Extensions.XML, consultez Comment : inscrire et gérer des extensions de fonctionnalité.
L'assembly d'extension était introuvable
Si vous n'avez pas copié votre assembly d'extension dans le dossier Extensions, votre extension ne sera pas chargée. En général, vous copiez les fichiers MonAssembly.dll et MonAssembly.pdb dans le dossier %Program Files%\Microsoft Visual Studio 10.0\VSTSDB\Extensions\MesExtensions, où MonAssembly est le nom de votre extension.
Notes
Évitez de copier directement vos fichiers XML dans le dossier [Program Files]\Microsoft Visual Studio 10.0\VSTSDB\Extensions. L'intérêt d'utiliser un sous-dossier est d'empêcher toute modification accidentelle apportée aux autres fichiers fournis avec Visual Studio Premium.
Le code dans l'extension n'étend pas les classes correctes
Pour chaque type d'extension de fonctionnalité, votre classe principale étend une classe de base spécifique. Si vous n'héritez pas de la classe de base correcte, votre extension ne fonctionnera pas correctement. Pour plus d'informations, consultez la procédure pas à pas correspondante.
Les classes ou membres dans l'extension n'ont pas les attributs corrects
Pour chaque type d'extension de fonctionnalité, la classe doit avoir un attribut qui déclare le type des fournisseurs de schémas de base de données avec lesquels l'extension est compatible. De plus, certaines extensions requièrent des attributs supplémentaires sur l'une ou plusieurs des méthodes de classe. Pour plus d'informations, consultez la procédure pas à pas correspondante.
Voir aussi
Concepts
Créer des types ou cibles de refactorisation de base de données personnalisés
Créer et inscrire des règles supplémentaires pour l'analyse du code d'une base de données
Générer des données de test spécialisées à l'aide d'un générateur de données personnalisé
Définir des conditions personnalisées pour les tests unitaires de base de données