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
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.
Com o botão direito IVsInstalledProduct, aponte para Implementar Interfacee, em seguida, clique em Implementar Interface.
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
Clique duas vezes o arquivo de recurso. resx associado com o VSPackage.
O editor de recursos é aberta.
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
Selecionar e editar essas informações como você deseja.
Para manter a ícones de produto e bitmaps
Adicione os ícones e bitmaps ao projeto como recursos do projeto.
Para obter mais informações, consulte Adding and Editing Resources.
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.
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
- Para testar sua VSPackage, consulte Como: teste a Ajuda sobre e joga telas.