Udostępnij za pośrednictwem


Tworzenie rozszerzenia za pomocą pakietu VSPackage

W tym przewodniku pokazano, jak utworzyć projekt VSIX i dodać element projektu VSPackage. Użyjemy pakietu VSPackage, aby uzyskać usługę powłoki interfejsu użytkownika w celu wyświetlenia pola komunikatu.

Tworzenie pakietu VSPackage

  1. Utwórz projekt VSIX o nazwie FirstPackage. Szablon projektu VSIX można znaleźć w oknie dialogowym Nowy projekt , wyszukując frazę "vsix".

  2. Po otwarciu projektu dodaj szablon elementu pakietu programu Visual Studio o nazwie FirstPackage. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy węzeł projektu i wybierz polecenie Dodaj>nowy element. W oknie dialogowym Dodawanie nowego elementu przejdź do pozycji Visual C#>Rozszerzalność i wybierz pozycję Pakiet programu Visual Studio. W polu Nazwa w dolnej części okna zmień nazwę pliku polecenia na FirstPackage.cs.

  3. Skompiluj projekt i rozpocznij debugowanie.

    Zostanie wyświetlone eksperymentalne wystąpienie programu Visual Studio. Aby uzyskać więcej informacji na temat wystąpienia eksperymentalnego, zobacz Wystąpienie eksperymentalne.

  4. W wystąpieniu eksperymentalnym otwórz okno Rozszerzenia narzędzi>i Aktualizacje. Tutaj powinno zostać wyświetlone rozszerzenie FirstPackage . (Jeśli otworzysz Rozszerzenia i Aktualizacje w wystąpieniu roboczym programu Visual Studio nie będą widoczne w obszarze FirstPackage.

Ładowanie pakietu VSPackage

W tym momencie rozszerzenie nie jest ładowane, ponieważ nie ma nic, co powoduje jego załadowanie. Zwykle można załadować rozszerzenie podczas interakcji z interfejsem użytkownika (kliknięcie polecenia menu, otwarcie okna narzędzia) lub określenie, że pakiet VSPackage powinien zostać załadowany w określonym kontekście interfejsu użytkownika. Aby uzyskać więcej informacji na temat ładowania pakietów VSPackage i kontekstów interfejsu użytkownika, zobacz Ładowanie pakietów VSPackage. W tej procedurze pokażemy, jak załadować pakiet VSPackage po otwarciu rozwiązania.

  1. Otwórz plik FirstPackage.cs. Poszukaj deklaracji FirstPackage klasy . Zastąp istniejące atrybuty następującymi atrybutami:

    [PackageRegistration(UseManagedResourcesOnly = true)]
    [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About
    [ProvideAutoLoad(UIContextGuids80.SolutionExists)]
    [Guid(FirstPackage.PackageGuidString)]
    public sealed class FirstPackage : Package
    
  2. Dodajmy komunikat informujący nas, że pakiet VSPackage został załadowany. W tym celu użyjemy metody vsPackage Initialize() , ponieważ usługi programu Visual Studio można pobrać dopiero po lokacji pakietu VSPackage. (Aby uzyskać więcej informacji na temat pobierania usług, zobacz Instrukcje: pobieranie usługi). Zastąp metodę Initialize() FirstPackage kodem, który pobiera usługę SVsUIShell , pobiera IVsUIShell interfejs i wywołuje jego ShowMessageBox metodę.

    protected override void Initialize()
    {
        base.Initialize();
    
        IVsUIShell uiShell = (IVsUIShell)GetService(typeof(SVsUIShell));
        Guid clsid = Guid.Empty;
        int result;
        Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(uiShell.ShowMessageBox(
            0,
            ref clsid,
            "FirstPackage",
             string.Format(CultureInfo.CurrentCulture, "Inside {0}.Initialize()", this.GetType().FullName),
            string.Empty,
            0,
            OLEMSGBUTTON.OLEMSGBUTTON_OK,
            OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST,
            OLEMSGICON.OLEMSGICON_INFO,
            0,
            out result));
    }
    
  3. Skompiluj projekt i rozpocznij debugowanie. Zostanie wyświetlone wystąpienie eksperymentalne.

  4. Otwórz rozwiązanie w wystąpieniu eksperymentalnym. Powinno zostać wyświetlone okno komunikatu z komunikatem First Package Inside Initialize().