2010-08-09 8 views
0

J'ai un plug-in que j'utilise avec Visual Studio 2008. Je suis en train de tester 2010 et l'un des problèmes que je vois est le fait que le plug-in ne soit plus chargé.
Ceci est la commande que je utilise pour ajouter mon plug-in:VS plugin de 2008 à 2010

toolsMenuName = "Tools"; 

Microsoft.VisualStudio.CommandBars.CommandBar menuBarCommandBar = ((CommandBars)_applicationObject.CommandBars)["MenuBar"]; 


CommandBarControl toolsControl = menuBarCommandBar.Controls[toolsMenuName]; 
var toolsPopup = (CommandBarPopup)toolsControl; 


try 
{ 

Command command = commands.AddNamedCommand2(_addInInstance, "TestData", "Test Data", "", true, 0, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported + (int)vsCommandStatus.vsCommandStatusEnabled, (int)vsCommandStyle.vsCommandStylePictAndText, vsCommandControlType.vsCommandControlTypeButton); 


if ((command != null) && (toolsPopup != null)) 
{ 
command.AddControl(toolsPopup.CommandBar, 1); 
} 
} 
catch (ArgumentException) 
{ 

} 

Ce qui a changé dans VS 2010?

Merci Tony

Répondre

0

j'ai un complément qui fonctionne en 2005 et 2008 (.net 2.0 ciblage), et je devais faire aucun changement pour le faire fonctionner en 2010. Donc, fondamentalement un .net 2.0 add-in peut travailler en 2010 (même si vous devrez peut-être modifier quelques choses pour le faire fonctionner parfaitement, les principes fondamentaux de chargement et d'ajouter un havre de commandement » t changé)

Ceci suggère que c'est probablement un simple pépin - Je suppose:

  • Il y a quelque chose de mal dans votre fichier .Addin, ou il est pas sur le chemin des compléments de VS2010, de sorte qu'il ne soit pas chargé par VS2010, ou
  • Le complément se charge, mais n'ajoute ses commandes avec succès.

La première chose que je suggère est donc de vérifier si le chargement est correct. Aller à Outils-> Gestionnaire de compléments et voir si elle est répertoriée et vérifiée. Sinon, il ne figure pas dans le chemin des compléments, ou votre fichier MyAddin.Addin n'est pas correct (le fichier XML a-t-il été mis à jour pour cibler la version 10.0 de l'EDI ou est-il toujours dit version 9.0?)

Si le chargement est correct, vous devez l'exécuter sous un débogueur pour voir pourquoi votre commande ne s'enregistre pas correctement.

+0

Je suis assez nouveau à ce sujet et j'ai hérité d'un processus de travail pour VS2008. D'après ce que j'ai pu trouver et votre réponse, je suppose que je cherchais au mauvais endroit le problème que je rencontre. J'appelle VS2010 au lieu de 2008 maintenant. Quand le paquet s'installe je peux voir VS2010 s'exécuter quand le programme d'installation est déclenché. La commande appelée pour installer le complément: devenv.exe + "/ resetaddin" + addinName + "/ Command File.Exit"; Vous n'êtes pas sûr de la valeur de addinName (je ne sais pas comment déboguer l'appel de l'installateur). BTW, le complément n'est pas répertorié dans le Gestionnaire de compléments après l'installation. – tony

+0

Le problème semble définitivement être l'installation plutôt que le démarrage et l'ajout de la commande. Si vous avez un fichier .Addin, vous devriez pouvoir installer manuellement le plugin comme ceci: Enregistrer les fichiers .Addin et .dll quelque part (par exemple C: \ MyAddin). Editez le fichier .Addin et entrez le chemin de la DLL dans l'élément , c'est-à-dire C: \ MyAddin \ MyAddin.dll. Exécutez VS et accédez à Outils> Options: Sécurité des macros/macros. Vérifiez que "Autoriser l'ajout de composants à charger" est coché. Cliquez sur Ajouter ... pour ajouter C: \ MyAddin aux chemins. Redémarrez et vérifiez si votre addin apparaît dans Outils> Addin manager –

+0

S'il s'agit d'un package, l'analyseur de chargement de package peut vous aider à diagnostiquer des problèmes (je ne sais pas avec certitude, mais cela semble utile). http://msdn.microsoft.com/en-us/library/bb286997(VS.80).aspx –

0

Beaucoup de choses ont changé, mais surtout la version clr a changé, Net 2.0 de 3.5 Utilisation clr 2.0. 4.0 Net utilise la nouvelle clr, si les chances sont c'est le coupable

Cordialement

Questions connexes