Vytvoření rozšíření pomocí příkazu nabídky

Tento návod ukazuje, jak vytvořit rozšíření pomocí příkazu nabídky, který spustí Poznámkový blok.

Příkaz Pro vytvoření nabídky

  1. Vytvořte projekt VSIX s názvem FirstMenuCommand. Šablonu projektu VSIX najdete v dialogovém okně Nový projekt vyhledáním "vsix".

  2. Po otevření projektu přidejte vlastní šablonu položky příkazu s názvem FirstCommand. V Průzkumník řešení klikněte pravým tlačítkem myši na uzel projektu a vyberte Přidat>novou položku. V dialogovém okně Přidat novou položku přejděte do rozšiřitelnosti položek>jazyka C# a vyberte Příkaz. V poli Název v dolní části okna změňte název souboru příkazu na FirstCommand.cs.

  3. Sestavte projekt a spusťte ladění.

    Zobrazí se experimentální instance sady Visual Studio. Další informace o experimentální instanci naleznete v tématu Experimentální instance.

  4. V experimentální instanci otevřete okno Rozšíření>Spravovat rozšíření. Tady byste měli vidět rozšíření FirstMenuCommand . (Pokud otevřete Spravovat rozšíření v pracovní instanci sady Visual Studio, neuvidíte FirstMenuCommand).

Nyní přejděte do nabídky Nástroje v experimentální instanci. Měl by se zobrazit příkaz Invoke FirstCommand . V tomto okamžiku příkaz zobrazí okno se zprávou s textem FirstCommand Inside FirstMenuCommand.FirstCommand.MenuItemCallback(). V další části se dozvíme, jak ve skutečnosti spustit Poznámkový blok z tohoto příkazu.

Změna obslužné rutiny příkazu nabídky

Teď aktualizujeme obslužnou rutinu příkazu, aby se spustila Poznámkový blok.

  1. Zastavte ladění a vraťte se k funkční instanci sady Visual Studio. Otevřete soubor FirstCommand.cs a přidejte následující příkaz using:

    using System.Diagnostics;
    
  2. Vyhledejte privátní konstruktor FirstCommand. Tady se příkaz připojí ke službě příkazů a zadává se obslužná rutina příkazu. Změňte název obslužné rutiny příkazu na Start Poznámkový blok následujícím způsobem:

    private FirstCommand(AsyncPackage package, OleMenuCommandService commandService)
    {
        this.package = package ?? throw new ArgumentNullException(nameof(package));
        commandService = commandService ?? throw new ArgumentNullException(nameof(commandService));
    
        CommandID menuCommandID = new CommandID(CommandSet, CommandId);
        // Change to StartNotepad handler.
        MenuCommand menuItem = new MenuCommand(this.StartNotepad, menuCommandID);
        commandService.AddCommand(menuItem);
    }
    
  3. Odeberte metodu Execute a přidejte metoduStartNotepad, která se spustí jen Poznámkový blok:

    private void StartNotepad(object sender, EventArgs e)
    {
        ThreadHelper.ThrowIfNotOnUIThread();
    
        Process proc = new Process();
        proc.StartInfo.FileName = "notepad.exe";
        proc.Start();
    }
    
  4. Teď to zkuste. Když spustíte ladění projektu a kliknete na Nástroje>Invoke FirstCommand, měli byste vidět instanci Poznámkový blok přijít.

    Instanci třídy můžete použít ke spuštění libovolného spustitelného Process souboru, a to nejen Poznámkový blok. Zkuste to například pomocí calc.exe.

Vyčištění experimentálního prostředí

Pokud vyvíjíte více rozšíření nebo jen zkoumáte výsledky s různými verzemi kódu rozšíření, může experimentální prostředí přestat fungovat tak, jak by mělo. V tomto případě byste měli spustit skript pro resetování. Jmenuje se Resetovat experimentální instanci sady Visual Studio a dodává se jako součást sady Visual Studio SDK. Tento skript odebere všechny odkazy na vaše rozšíření z experimentálního prostředí, takže můžete začít úplně od začátku.

K tomuto skriptu se dostanete jedním ze dvou způsobů:

  1. Na ploše vyhledejte resetování experimentální instance sady Visual Studio.

  2. Z příkazového řádku spusťte následující příkaz:

    <VSSDK installation>\VisualStudioIntegration\Tools\Bin\CreateExpInstance.exe /Reset /VSInstance=<version> /RootSuffix=Exp && PAUSE
    
    

Nasazení rozšíření

Teď, když máte rozšíření nástrojů spuštěné tak, jak chcete, je čas přemýšlet o sdílení s přáteli a kolegy. To je snadné, pokud jsou nainstalované sady Visual Studio 2015. Stačí jen odeslat soubor .vsix , který jste vytvořili. (Nezapomeňte ho sestavit v režimu vydání.)

Soubor .vsix pro tuto příponu najdete v adresáři FirstMenuCommand bin. Konkrétně za předpokladu, že jste vytvořili konfiguraci vydané verze, bude v:

<adresář> kódu\FirstMenuCommand\FirstMenuCommand\bin\Release\FirstMenuCommand.vsix

Pokud chcete nainstalovat rozšíření, musí váš přítel zavřít všechny otevřené instance sady Visual Studio a potom poklikejte na soubor .vsix , který zobrazí instalační program VSIX. Soubory se zkopírují do adresáře %LocalAppData%\Microsoft\VisualStudio<version>\Extensions .

Když váš přítel znovu otevře Visual Studio, najde rozšíření FirstMenuCommand v rozšíření nástroje>a Aktualizace. Můžou přejít na Rozšíření a Aktualizace také odinstalovat nebo zakázat rozšíření.

Další kroky

Tento názorný postup vám ukázal jen malou část toho, co můžete dělat s rozšířením sady Visual Studio. Tady je krátký seznam dalších (přiměřeně snadných) věcí, které můžete dělat s rozšířeními sady Visual Studio:

  1. Pomocí jednoduchého příkazu nabídky můžete dělat spoustu dalších věcí:

    1. Přidání vlastní ikony: Přidání ikon do příkazů nabídky

    2. Změna textu příkazu nabídky: Změna textu příkazu nabídky

    3. Přidání zástupce nabídky do příkazu: Vytvoření vazby klávesových zkratek k položkám nabídky

  2. Přidání různých typů příkazů, nabídek a panelů nástrojů: Rozšíření nabídek a příkazů

  3. Přidání oken nástrojů a rozšíření integrovaných oken nástrojů sady Visual Studio: Rozšíření a přizpůsobení oken nástrojů

  4. Přidání IntelliSense, návrhů kódu a dalších funkcí do existujících editorů kódu: Rozšíření editoru a jazykových služeb

  5. Přidání možností a stránek vlastností a uživatelských nastavení do rozšíření: Rozšíření vlastností a okna Vlastnosti a rozšíření uživatelských nastavení a možností

    Další typy rozšíření vyžadují o něco víc práce, například vytvoření nového typu projektu (rozšíření projektů), vytvoření nového typu editoru (vytvoření vlastních editorů a návrhářů) nebo implementaci rozšíření v izolovaném prostředí: izolované prostředí sady Visual Studio