Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, ilk Visual Studio uzantınızı çalışır duruma getirmek için bazı basit adımlarda size yol gösterilir. Visual Studio uzantısı .NET Framework ve C# kullanılarak yazılır. Zaten bir .NET geliştiricisiyseniz, uzantı yazmanın diğer .NET programlarının ve kitaplıklarının çoğuna benzer olduğunu göreceksiniz.
Bugün yazacağınız uzantı, yürütüldüğünde metin düzenleyicisine yeni bir GUID ekleyen bir komut eklemektedir. Basit, kullanışlıdır ve uzantı geliştirmenin çeşitli yönlerine iyi bir giriş sağlar.
Görsel bir öğrenciyseniz, öğreticiyi izleyen birinin bu kısa videosunu gözden geçirin.
İlk Visual Studio uzantınızı yazmaya başlamadan önce (çok kolay, söz veriyorum!), gerekli araçlara sahip olduğunuzdan emin olun.
Projeyi oluşturma
Aralarından seçim yapabileceğiniz birkaç proje şablonu olduğundan doğru seçimi yapmak istiyorsunuz. Bu topluluk araç setinde kullanılan şablonların isimlerinde (Topluluk) bulunur.
VSIX Proje ile Komut (Topluluk) şablonu, bağlı bir komutla birlikte gelir, bu da buradan başlamayı kolaylaştırır. Bu, çoğu uzantı için harika bir başlangıç noktasıdır. Araç penceresi istediğinizi biliyorsanız VSIX Proje w/Tool Window (Topluluk) şablonunu kullanın. Ayrıca araç penceresini açmak için bir komutu vardır.
Yalnızca MEF uzantıları veya diğer gelişmiş senaryolar için Boş VSIX Projesi (Topluluk) veya VSIX Projesi (Topluluk) şablonlarını kullanın.
Bu kez, aşağıdaki ekran görüntüsünde gösterildiği gibi VSIX Projesi w/Command (Topluluk) şablonunu seçeceksiniz.
Proje şablonunu seçtikten sonra projenize bir ad vermeniz gerekir. InsertGuid olarak adlandır.
Oluştur düğmesine bastıktan sonra aşağıdaki gibi görünen temel bir VSIX Projesine sahip olmanız gerekir:
Önemli dosyalar
En önemli dosyaların üzerinden geçelim.
InsertGuidPackage.cs , Package sınıfı olarak adlandırılır. Yöntemi InitializeAsync(...) , uzantınızı başlatmak için Visual Studio tarafından çağrılır. Buradan olay dinleyicileri ekleyip komutları, araç pencerelerini, ayarları ve diğer öğeleri kaydedersiniz.
source.extension.vsixmanifest , uzantınızın bildirim dosyasıdır. Başlık ve açıklama gibi meta verileri içerir, ancak uzantının ne içerdiği hakkında da bilgi içerir.
VSCommandTable.vsct , komutların ve anahtar bağlamalarının bildirim temelli olarak tanımlandığı bir XML dosyasıdır, bu nedenle Visual Studio'ya kaydedilebilirler.
Commands/MyCommand.cs , VSCommandTable.vsct dosyasında tanımlanan komutun komut işleyicisidir. Komutun yürütülmesi sırasında düğmeye tıklanarak gerçekleşenleri denetler.
Komutu değiştirme
İlk olarak, komutunuzun Visual Studio menü sistemi içinde doğru ada, simgeye ve konuma sahip olduğundan emin olmak istiyorsunuz.
VSCommandTable.vsct dosyasını açın ve bir <Group> ve <Button>bulun. Düğmenin, bir grubun parçası olarak konumlandırıldığına ve bu grubun üst öğesinin yerleşik VSMainMenu/Araçlar menüsü olduğuna dikkat edin.
Uzantınız için GUID Ekle komut düğmesinin Düzenle ana menüsünün altında olmasını istiyorsunuz, bu nedenle grubu Düzenle menüsünün altına taşımak için grubun ebeveynini değiştireceksiniz. Aşağıdaki kod parçacığında olduğu gibi AraçlarıDüzenle ile değiştirin:
<Group guid="InsertGuid" id="MyMenuGroup" priority="0x0600">
<Parent guid="VSMainMenu" id="Edit"/>
</Group>
Doğru noktayı bulmayı kolaylaştırmak için yerleştirmelerde tam IntelliSense desteği sağlanır.
<Button>'nin güncellenmesi de gerekiyor. <ButtonText> ve komutunun teknik adıyla güncelleştirin <LocCanonicalName> . Bu, Araçlar > Seçenekleri > Ortam > Klavyesi iletişim kutusunda kullanıcılara komutunuza özel klavye kısayolları atadığında gösterilen addır.
<Button guid="InsertGuid" id="MyCommand" priority="0x0100" type="Button">
<Parent guid="InsertGuid" id="MyMenuGroup" />
<Icon guid="ImageCatalogGuid" id="PasteAppend" />
<CommandFlag>IconIsMoniker</CommandFlag>
<Strings>
<ButtonText>Insert GUID</ButtonText>
<LocCanonicalName>.Edit.InsertGuid</LocCanonicalName>
</Strings>
</Button>
Uyarı
her zaman nokta karakteriyle başlayın <LocCanonicalName> . Başka hiçbir metnin otomatik olarak önceden eklenmemesini ve noktanın görüntülenmemesini sağlar.
Visual Studio'nun görüntü kitaplığında bulunan binlerce simgeyi kullanabilir ve hatta IntelliSense'te gösterilen önizlemeyi alabilirsiniz:
Şimdi komutumuzun adını, simgesini ve konumunu güncelleştirdiniz ve guid'yi metin düzenleyicisine eklemek için kod yazmanın zamanı geldi.
/Commands/MyCommand.cs dosyasını açın ve çalıştırıldığında yeni bir GUID eklemek için değiştirin.
using System;
using Community.VisualStudio.Toolkit;
using EnvDTE;
using Microsoft.VisualStudio.Shell;
using Task = System.Threading.Tasks.Task;
namespace InsertGuid
{
[Command(PackageIds.MyCommand)]
internal sealed class MyCommand : BaseCommand<MyCommand>
{
protected override async Task ExecuteAsync(OleMenuCmdEventArgs e)
{
await Package.JoinableTaskFactory.SwitchToMainThreadAsync();
DocumentView docView = await VS.Documents.GetActiveDocumentViewAsync();
if (docView?.TextView == null) return;
SnapshotPoint position = docView.TextView.Caret.Position.BufferPosition;
docView.TextBuffer?.Insert(position, Guid.NewGuid().ToString());
}
}
}
Aktif düzenleyici metin görünümünü almak ve ardından guid değerini metin arabelleğinin imleç konumuna eklemek için VS nesnesini kullanıyorsunuz.
VSVisual Studio IDE kullanıcı arabirimi öğelerine erişim sağlayan statik bir nesnedir; vsIX Community Toolkit GitHub deposundakiVS.cs tanımına bakın.
Uyarı
Birçok yerde bu topluluk araç setinde await JoinableTaskFactory.SwitchToMainThreadAsync() ve ThreadHelper.ThrowIfNotOnUIThread() göreceksiniz. İş parçacığı değiştirme en iyi pratiklerini ele alırlar ve bu noktada bunları ne zaman ve nasıl kullanacağınızı bilmeniz gerekmez - Derleyici uyarıları ve Kod Düzeltmeleri (işaret ışıkları) süreçleri çok basit hale getirir.
Uzantımızın ilk taslağı artık tamamlandı ve test etme zamanı geldi.
Çalıştırma ve hata ayıklama
Uzantınızı çalıştırmak, diğer .NET projelerini çalıştırmak kadar kolaydır. Hata ayıklayıcı ekli olarak çalıştırmak için F5 tuşuna veya olmadan çalıştırmak için Ctrl+F5 tuşlarına basmanız yeterlidir.
Bunu yaptığınızda uzantınız yüklü olarak Visual Studio'nun Deneysel Örneği başlatılır. Deneysel Örnek, Visual Studio'nun normal sürümünüzdür, ancak ayrı ayarlar ve uzantılar yüklüdür. Şeylerin ayrı tutulmasına yardımcı olur.
Deneysel Örnek başlatıldığında, Düzenle ana menüsünde GUID Ekle komutunu görmeniz gerekir.
Herhangi bir metin tabanlı dosyayı açın ve komutunu yürüterek yeni bir guid ekleyin. Hepsi bu kadar!
Özet
Şimdi ana menüye bir komut düğmesi ekleyen ve yürütürken metin düzenleyicisiyle etkileşim kuran ilk uzantınızı oluşturdunuz.
Tebrikler!!
Bu uzantının kodunu örnek deposunda bulabilirsiniz.