Freigeben über


Gewusst wie: Brennen Sie ein VSPackage (C# und Visual Basic)

Um Informationen im Dialogfeld und im Begrüßungsbildschirm angezeigt wird, muss die VSPackages IVsInstalledProduct-Schnittstelle implementieren. Dadurch werden die folgenden Informationen zu Visual Studiobereit:

  • Name

  • ID, wie Serie oder Versionsnummer

  • Information

  • Symbol für das Logo

Der folgende Code besteht aus Visual Studio-Erweiterbarkeits-Beispiele.

So implementieren IVsInstalledProduct-Schnittstelle

  1. Fügen Sie das InstalledProductRegistrationAttribute-Attribut der Klasse hinzu, die einem VSPackage implementieren. Diese Klasse muss von Package und IVsInstalledProductberechnen.

    <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
    

    Das erste Argument, UseInterface, InstalledProductRegistrationAttribute des Attributs wird Visual Studio an, IVsInstalledProduct verwenden, um Produktinformationen, anstatt des InstalledProducts-Registrierungsschlüssels abzurufen. Die übrigen Argumente Zeichenfolgenressourcen Option aus, um den Produktnamen, die ID und den Details anzuzeigen. Da das erste Argument trueist, sind die übrigen Argumente null.

  2. Klicken Sie mit der rechten Maustaste auf IVsInstalledProduct, zeigen Sie auf Schnittstelle implementieren, und klicken Sie dann auf Schnittstelle implementieren.

  3. Implementieren IVsInstalledProduct mithilfe des folgenden Codes.

    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 ruft diese Methode auf, um Einbrennen Informationen zum Abrufen von VSPackages. Die GetResourceString-Methode wird verwendet, um diese Informationen zu isolieren.

    Hinweis

    Codekommentare werden der Kürze halber gelöscht.Sie können sie in Visual Studio-Erweiterbarkeits-Beispielesuchen.

Um die Produktinformations Beibehalten von Zeichenfolgen

  1. Doppelklicken Sie auf die .resx-Ressourcendatei, die mit einem VSPackage zugeordnet ist.

    Der Ressourcen-Editor wird geöffnet.

  2. Suchen, oder fügen Sie den Produktnamen, die Informationen und die ID hinzu

    Die folgenden Ressourcenzeichenfolgen sind von Visual Studio-Erweiterbarkeits-Beispiele.

    • @101
      Paket-Begrüßungsbildschirm und Hilfe zu den offiziellen Namen (C#).

    • @102
      Dieses Paket wird veranschaulicht, wie Text und Bild im Begrüßungsbildschirm und ungefähr in der Hilfe angezeigt wird.

    • @104
      8.0

  3. Wählen Sie aus, und bearbeiten Sie diese Informationen, wie Sie möchten.

Um die Produkt Bitmaps und Symbole beibehalten

  1. Fügen Sie die Bitmaps und Symbole als Projektressourcen dem Projekt hinzu.

    Weitere Informationen finden Sie unter Adding and Editing Resources.

  2. Schließen Sie den Ressourcen-Editor, und öffnen Sie die RESX-Datei in einem XML- oder in einem Texteditor.

    Hinweis

    Der Ressourcen-Editor unterstützt das Zuweisen von Ressource ID auf die Elemente nichts anderes als Zeichenfolgen.

  3. Suchen oder fügen Sie das Symbol und die Bitmapressourcen der RESX-Datei hinzu. Die folgenden Ressourcen sind von Visual Studio-Erweiterbarkeits-Beispiele.

    <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>
    

Um das Dialogfeld Info Begrüßungsbildschirme und testen

Siehe auch

Weitere Ressourcen

VSPackage-einbrennen