Comment : Stigmatisez un VSPackage (c# et Visual Basic)
Pour afficher dans la boîte de dialogue de À propos de et l'écran de démarrage, VSPackages doit implémenter l'interface d' IVsInstalledProduct . Cela fournit les informations suivantes dans Visual Studio:
Nom
ID, tel que l'interface série ou le numéro de version
Information
icône de logo
Le code suivant est de Exemples d'extensibilité Visual Studio.
pour implémenter l'interface d'IVsInstalledProduct
ajoutez l'attribut d' InstalledProductRegistrationAttribute à la classe qui implémente le VSPackage. cette classe doit dériver d' Package et d' IVsInstalledProduct.
<InstalledProductRegistration(True, Nothing, Nothing, Nothing)> _ <DefaultRegistryRoot("Software\Microsoft\VisualStudio\8.0")> _ <PackageRegistration(UseManagedResourcesOnly:=True)> _ <Guid("EEE474A0-083B-4e9c-B453-F6FCCEDA2577")> _ Public NotInheritable Class PackageSplashHelpAboutLoadKey Inherits Package Implements IVsInstalledProduct
[InstalledProductRegistration(true, null, null, null)] [DefaultRegistryRoot("Software\\Microsoft\\VisualStudio\\8.0")] [PackageRegistration(UseManagedResourcesOnly = true)] [Guid("EEE474A0-083B-4e9c-B453-F6FCCEDA2577")] public sealed class PackageSplashHelpAboutLoadKey : Package, IVsInstalledProduct
Premier argument, UseInterface, de l'attribut d' InstalledProductRegistrationAttribute indique Visual Studio d'utiliser IVsInstalledProduct pour obtenir des informations sur le produit, au lieu de la clé de Registre d'InstalledProducts. Les arguments restants sélectionnent des ressources de type chaîne pour afficher le nom de produit, les informations, et l'ID, respectivement. Toutefois, étant donné que le premier argument est true, les arguments restants sont null.
Cliquez avec le bouton droit sur IVsInstalledProduct, pointez sur Implémenter l'interface, puis cliquez sur Implémenter l'interface.
Implémentez IVsInstalledProduct à l'aide de le code suivant.
Public Function IdBmpSplash(ByRef pIdBmp As UInteger) As Integer _ Implements IVsInstalledProduct.IdBmpSplash pIdBmp = 300 Return VSConstants.S_OK End Function Public Function IdIcoLogoForAboutbox(ByRef pIdIco As UInteger) As Integer _ Implements IVsInstalledProduct.IdIcoLogoForAboutbox pIdIco = 400 Return VSConstants.S_OK End Function Public Function OfficialName(ByRef pbstrName As String) As Integer _ Implements IVsInstalledProduct.OfficialName pbstrName = GetResourceString("@101") Return VSConstants.S_OK End Function Public Function ProductDetails(ByRef pbstrProductDetails As String) As Integer _ Implements IVsInstalledProduct.ProductDetails pbstrProductDetails = GetResourceString("@102") Return VSConstants.S_OK End Function Public Function ProductID(ByRef pbstrPID As String) As Integer _ Implements IVsInstalledProduct.ProductID pbstrPID = GetResourceString("@104") Return VSConstants.S_OK End Function Public Function GetResourceString(ByVal resourceName As String) As String Dim resourceValue As String Dim resourceManager As IVsResourceManager = DirectCast(GetService(GetType(SVsResourceManager)), IVsResourceManager) If resourceManager Is Nothing Then Throw New InvalidOperationException("Could not get SVsResourceManager service. Make sure that the package is sited before calling this method") End If Dim packageGuid As Guid = Me.[GetType]().GUID Dim hr As Integer = resourceManager.LoadResourceString(packageGuid, -1, resourceName, resourceValue) Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(hr) Return resourceValue End Function
public int IdBmpSplash(out uint pIdBmp) { pIdBmp = 300; return VSConstants.S_OK; } public int IdIcoLogoForAboutbox(out uint pIdIco) { pIdIco = 400; return VSConstants.S_OK; } public int OfficialName(out string pbstrName) { pbstrName = GetResourceString("@101"); return VSConstants.S_OK; } public int ProductDetails(out string pbstrProductDetails) { pbstrProductDetails = GetResourceString("@102"); return VSConstants.S_OK; } public int ProductID(out string pbstrPID) { pbstrPID = GetResourceString("@104"); return VSConstants.S_OK; } public string GetResourceString(string resourceName) { string resourceValue; IVsResourceManager resourceManager = (IVsResourceManager)GetService(typeof(SVsResourceManager)); if (resourceManager == null) { throw new InvalidOperationException( "Could not get SVsResourceManager service. Make sure that the package is sited before calling this method"); } Guid packageGuid = this.GetType().GUID; int hr = resourceManager.LoadResourceString( ref packageGuid, -1, resourceName, out resourceValue); Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(hr); return resourceValue; }
Visual Studio appelle ces méthodes pour obtenir des informations pour stigmatiser le VSPackage. la méthode de GetResourceString est utilisée pour localiser ces informations.
Notes
Les commentaires de code sont supprimés par souci de concision.vous pouvez les rechercher dans Exemples d'extensibilité Visual Studio.
Pour stocker les chaînes de les informations de produit
Double-cliquez sur le fichier de ressources .resx associé au VSPackage.
l'éditeur de ressources s'ouvre.
Rechercher ou ajoutez le nom de produit, les informations, et ID.
Les chaînes de ressources suivantes sont de Exemples d'extensibilité Visual Studio.
@101
Écran de démarrage et aide de package sur le nom officiel (c#).@102
Ce package montre comment afficher du texte et à l'image de l'écran de démarrage et d'aide sur.@104
8.0
Sélectionnez et remplacez ces informations que vous le souhaitez.
Pour gérer les icônes et les bitmaps de produit
Ajoutez les bitmaps et les icônes du projet en tant que ressources du projet.
Pour plus d'informations, consultez Adding and Editing Resources.
Fermez l'éditeur de ressources et rouvrez le fichier .resx dans XML ou un éditeur de texte.
Notes
L'éditeur de ressources ne prend pas en charge les assignation des identificateurs de ressource aux éléments autres que des chaînes.
Rechercher ou ajoutez l'icône et les ressources bitmap au fichier .resx. les ressources suivantes sont de Exemples d'extensibilité Visual Studio.
<data name="300" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>GenericPackage.bmp;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data> <data name="400" type="System.Resources.ResXFileRef, System.Windows.Forms"> <value>GenericPackage.ico;System.Drawing.Icon, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> </data>
Pour tester la boîte de dialogue about et les écrans de démarrage
- Pour tester votre VSPackage, consultez Comment : Testez l'aide sur et les écrans de démarrage.