Bagikan melalui


Membuat ekstensi dengan perintah menu

Panduan ini menunjukkan cara membuat ekstensi dengan perintah menu yang meluncurkan Notepad.

Membuat perintah menu

  1. Buat proyek VSIX bernama FirstMenuCommand. Anda dapat menemukan templat proyek VSIX dalam dialog Proyek Baru dengan mencari "vsix".

  2. Saat proyek terbuka, tambahkan templat item perintah kustom bernama FirstCommand. Di Penjelajah Solusi, klik kanan simpul proyek dan pilih Tambahkan>Item Baru. Dalam dialog Tambahkan Item Baru, buka Ekstensibilitas Item>C# dan pilih Perintah. Di bidang Nama di bagian bawah jendela, ubah nama file perintah menjadi FirstCommand.cs.

  3. Bangun proyek dan mulai penelusuran kesalahan.

    Instans eksperimental Visual Studio muncul. Untuk informasi selengkapnya tentang instans eksperimental, lihat Instans eksperimental.

  4. Dalam instans>eksperimental, buka jendela Ekstensi Kelola Ekstensi. Anda akan melihat ekstensi FirstMenuCommand di sini. (Jika Anda membuka Kelola Ekstensi dalam instans kerja Visual Studio, Anda tidak akan melihat FirstMenuCommand).

Sekarang buka menu Alat di instans eksperimental. Anda akan melihat perintah Invoke FirstCommand . Pada titik ini, perintah memunculkan kotak pesan yang mengatakan FirstCommand Inside FirstMenuCommand.FirstCommand.MenuItemCallback(). Kita akan melihat cara benar-benar memulai Notepad dari perintah ini di bagian berikutnya.

Mengubah penangan perintah menu

Sekarang mari kita perbarui handler perintah untuk memulai Notepad.

  1. Hentikan penelusuran kesalahan dan kembali ke instans kerja Visual Studio Anda. Buka file FirstCommand.cs dan tambahkan pernyataan penggunaan berikut:

    using System.Diagnostics;
    
  2. Temukan konstruktor FirstCommand privat. Di sinilah perintah dikaitkan ke layanan perintah dan handler perintah ditentukan. Ubah nama handler perintah menjadi StartNotepad, sebagai berikut:

    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. Execute Hapus metode dan tambahkan StartNotepad metode , yang hanya akan memulai Notepad:

    private void StartNotepad(object sender, EventArgs e)
    {
        ThreadHelper.ThrowIfNotOnUIThread();
    
        Process proc = new Process();
        proc.StartInfo.FileName = "notepad.exe";
        proc.Start();
    }
    
  4. Sekarang cobalah. Saat Anda mulai men-debug proyek dan mengklik Alat>Panggil FirstCommand, Anda akan melihat instans Notepad muncul.

    Anda dapat menggunakan instans Process kelas untuk menjalankan executable apa pun, bukan hanya Notepad. Cobalah dengan calc.exe, misalnya.

Membersihkan lingkungan eksperimental

Jika Anda mengembangkan beberapa ekstensi, atau hanya menjelajahi hasil dengan versi kode ekstensi yang berbeda, lingkungan eksperimental Anda mungkin berhenti bekerja seperti yang seharusnya. Dalam hal ini, Anda harus menjalankan skrip reset. Ini disebut Reset Instans Eksperimental Visual Studio, dan dikirim sebagai bagian dari Visual Studio SDK. Skrip ini menghapus semua referensi ke ekstensi Anda dari lingkungan eksperimental, sehingga Anda dapat memulai dari awal.

Anda bisa mendapatkan skrip ini dengan salah satu dari dua cara:

  1. Dari desktop, temukan Reset Instans Eksperimental Visual Studio.

  2. Dari baris perintah, jalankan yang berikut ini:

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

Menyebarkan ekstensi Anda

Sekarang setelah Anda memiliki ekstensi alat yang berjalan seperti yang Anda inginkan, saatnya untuk berpikir tentang berbagi dengan teman dan kolega Anda. Itu mudah, selama visual Studio 2015 terinstal. Yang harus Anda lakukan adalah mengirimi mereka file .vsix yang Anda buat. (Pastikan untuk membuatnya dalam mode Rilis.)

Anda dapat menemukan file .vsix untuk ekstensi ini di direktori bin FirstMenuCommand . Secara khusus, dengan asumsi Anda telah membangun konfigurasi Rilis, konfigurasi tersebut akan berada di:

<code directory>\FirstMenuCommand\FirstMenuCommand\bin\Release\FirstMenuCommand.vsix

Untuk menginstal ekstensi, teman Anda perlu menutup semua instans Visual Studio yang terbuka, lalu klik dua kali file .vsix , yang memunculkan Penginstal VSIX. File disalin ke direktori %LocalAppData%\Microsoft\VisualStudio<version>\Extensions .

Saat teman Anda memunculkan Visual Studio lagi, mereka akan menemukan ekstensi FirstMenuCommand di Ekstensi dan Pembaruan Alat>. Mereka juga dapat membuka Ekstensi dan Pembaruan untuk menghapus instalan atau menonaktifkan ekstensi.

Langkah berikutnya

Panduan ini telah menunjukkan kepada Anda hanya sebagian kecil dari apa yang dapat Anda lakukan dengan ekstensi Visual Studio. Berikut adalah daftar singkat hal lain (cukup mudah) yang dapat Anda lakukan dengan ekstensi Visual Studio:

  1. Anda dapat melakukan lebih banyak hal dengan perintah menu sederhana:

    1. Tambahkan ikon Anda sendiri: Tambahkan ikon ke perintah menu

    2. Mengubah teks perintah menu: Mengubah teks perintah menu

    3. Menambahkan pintasan menu ke perintah: Mengikat pintasan keyboard ke item menu

  2. Menambahkan berbagai jenis perintah, menu, dan toolbar: Perluas menu dan perintah

  3. Menambahkan jendela alat dan memperluas jendela alat Visual Studio bawaan: Memperluas dan Menyesuaikan jendela alat

  4. Menambahkan IntelliSense, saran kode, dan fitur lain ke editor kode yang ada: Memperluas editor dan layanan bahasa

  5. Menambahkan halaman Opsi dan Properti serta pengaturan pengguna ke ekstensi Anda: Perluas properti dan jendela Properti serta Perluas pengaturan dan opsi pengguna

    Jenis ekstensi lain memerlukan sedikit lebih banyak pekerjaan, seperti membuat jenis proyek baru (Perluas proyek), atau membuat jenis editor baru (Membuat editor dan desainer kustom).