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

Tento názorný postup 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 uvidí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 spustil 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 StartNotepad 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 metodu StartNotepad , která jednoduše spustí 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ěla by se zobrazit instance Poznámkového bloku.

    Instanci třídy můžete použít ke spuštění libovolného spustitelného Process souboru, nejen poznámkového bloku. 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ích a aktualizacích nástrojů>. Můžou také přejít na rozšíření a aktualizace , aby rozšíření odinstalovali nebo zakázali.

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í

    Jiné druhy rozšíření vyžadují trochu víc práce, například vytvoření nového typu projektu (rozšíření projektů) nebo vytvoření nového typu editoru (vytváření vlastních editorů a návrhářů).