Compartilhar via


Como: marcar um VSPackage (C# e Visual Basic)

Apareça na sobre caixa de diálogo e a tela de abertura, VSPackages deve implementar a IVsInstalledProduct interface. Isso fornece as seguintes informações para Visual Studio:

  • Nome

  • ID, como o número de série ou de versão

  • Informações

  • Ícone de logotipo

O código a seguir é de Exemplos de extensibilidade de Visual Studio.

Para implementar a interface IVsInstalledProduct

  1. Adicionar o InstalledProductRegistrationAttribute de atributo à classe que implementa o VSPackage. Essa classe deve derivar de ambos Package e 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
    

    O primeiro argumento, UseInterface, da InstalledProductRegistrationAttribute atributo o informa Visual Studio para usar IVsInstalledProduct para obter informações sobre o produto, em vez da chave do registro ' InstalledProducts '. Os argumentos restantes selecione recursos de seqüência de caracteres para exibir o nome do produto, detalhes e identificação, respectivamente. No entanto, como o primeiro argumento é true, os argumentos restantes são null.

  2. Com o botão direito IVsInstalledProduct, aponte para Implementar Interfacee, em seguida, clique em Implementar Interface.

  3. Implementar IVsInstalledProduct usando o código a seguir.

    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 Studiochamar esses métodos para obter informações para o VSPackage de identificação de marca. O método GetResourceString é usado para localizar essas informações.

    Dica

    Comentários de código são excluídos por questões de brevidade.Você pode encontrá-los no Exemplos de extensibilidade de Visual Studio.

Para manter as seqüências de caracteres de informações de produto

  1. Clique duas vezes o arquivo de recurso. resx associado com o VSPackage.

    O editor de recursos é aberta.

  2. Localizar ou adicionar o nome do produto, informações e a identificação.

    As seguintes seqüências de caracteres de recurso a Exemplos de extensibilidade de Visual Studio.

    • @101
      Tela de abertura do pacote e ajuda sobre o nome oficial (C#).

    • @102
      Este pacote demonstra como exibir o texto e imagem na tela de abertura e a Ajuda sobre.

    • @104
      8.0

  3. Selecionar e editar essas informações como você deseja.

Para manter a ícones de produto e bitmaps

  1. Adicione os ícones e bitmaps ao projeto como recursos do projeto.

    Para obter mais informações, consulte Adding and Editing Resources.

  2. Feche o editor de recursos e reabrir o arquivo. resx em um editor de texto ou XML.

    Dica

    O editor de recursos não oferece suporte para atribuir identificações de recurso a itens diferentes de seqüências de caracteres.

  3. Localizar ou adicionar os recursos de ícone e o bitmap para o arquivo. resx. Os recursos a seguir são de Exemplos de extensibilidade de 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>
    

Para testar as telas de abertura e de caixa de diálogo sobre

Consulte também

Outros recursos

Identificação de marca VSPackage