Aracılığıyla paylaş


Özel Yönerge İşlemcisi Dağıtma

Herhangi bir bilgisayarda Visual Studio'da özel yönerge işlemcisi kullanmak için, bu konuda açıklanan yöntemlerden biriyle kaydetmeniz gerekir.

Diğer yöntemler şunlardır:

  • Visual Studio Uzantıları. Bu, yönerge işlemcisini hem kendi bilgisayar hem de diğer bilgisayarlara yüklemek/kaldırmak için bir yol sağlar. Genellikle, diğer özellikleri aynı VSIX'te paketleyebilirsiniz.

  • VSPackage. Yönerge işlemcisinin yanı sıra diğer özellikleri de içeren bir VSPackage tanımlıyorsanız, yönerge işlemcisi kaydetmeye uygun bir yöntem yoktur.

  • Bir kayıt defteri anahtarı ayarlayın. Bu yöntemde, yönerge işlemcisi için bir kayıt defteri girdisini ekleyin.

Bu yöntemlerden birini yalnızca Visual Studio veya MSBuild'de metin şablonunuzu dönüştürmek istiyorsanız kullanmanız gerekir. Kendi uygulamanızda özel bir ana bilgisayar kullanıyorsanız, her yönerge için yönerge işlemcisi bulmak özel ana bilgisayarınızın sorumluluğundadır.

VSIX'te Yönerge İşlemcisini Dağıtma

Visual Studio Uzantısına (VSIX) özel yönerge işlemcisi ekleyebilirsiniz.

Aşağıdaki iki öğenin .vsix dosyasında bulunduğundan emin olmanız gerekir:

  • Özel yönerge işlemcisi sınıfını içeren derleme (.dll).

  • Yönerge işlemcisini kaydeden .pkgdef dosyası. Dosyanın kök adı derleme ile aynı olmalıdır. Örneğin, dosyalarınız CDP.dll ve CDP.pkgdef olarak adlandırılabilir.

Bir .vsix dosyasının içeriğini denetlemek veya değiştirmek için, dosya adı uzantısını .zip olarak değiştirin ve açın. İçerikleri düzenledikten sonra, dosya adını .vsix olarak eski haline döndürün.

Bir .vsix dosyası oluşturmanın birkaç yolu vardır. Aşağıdaki yordam bir yöntemi açıklamaktadır.

Bir VSIX projesinde özel bir yönerge işlemcisi geliştirmek için

  1. Yeni bir VSIX Projesi projesi oluşturun.

  2. source.extension.vsixmanifest dosyasında içerik türünü ve desteklenen sürümleri ayarlayın.

    1. VSIX bildirim düzenleyicisinde, Varlıklar sekmesinde Yeni'yi seçin ve yeni öğenin özelliklerini ayarlayın:

      İçerik Türü = VSPackage

      Kaynak Proje = <geçerli proje>

    2. Seçili Sürümler'e tıklayın ve yönerge işlemcisinin kullanılabilir olmasını istediğiniz yükleme türlerini denetleyin.

  3. .pkgdef dosyası ekleyin ve özelliklerini VSIX'e dahil edecek şekilde ayarlayın.

    1. Bir metin dosyası oluşturun ve assemblyName.pkgdef <>olarak adlandırın.

      <assemblyName> genellikle projenin adıyla aynıdır.

    2. Çözüm Gezgini'nde seçin ve özelliklerini aşağıdaki gibi ayarlayın:

      Derleme Eylemi = İçerik

      Çıktı Dizinine = Kopyala Her Zaman Kopyala

      VSIX = True'ya ekle

    3. VSIX'in adını ayarlayın ve kimliğin benzersiz olmasını sağlayın.

  4. Aşağıdaki metni .pkgdef dosyasına ekleyin.

    [$RootKey$\TextTemplating]
    [$RootKey$\TextTemplating\DirectiveProcessors]
    [$RootKey$\TextTemplating\DirectiveProcessors\ CustomDirectiveProcessorName]
    @="Custom Directive Processor description"
    "Class"="NamespaceName.ClassName"
    "CodeBase"="$PackageFolder$\AssemblyName.dll"
    

    Aşağıdaki adları kendi adlarınızla değiştirin: CustomDirectiveProcessorName, NamespaceName, ClassName, AssemblyName.

  5. Aşağıdaki başvuruları projeye ekleyin:

    • Microsoft.VisualStudio.TextTemplating.*.0

    • Microsoft.VisualStudio.TextTemplating.Interfaces.*.0

    • Microsoft.VisualStudio.TextTemplating.VSHost.*.0

  6. Projeye özel yönerge işlemcisi sınıfınızı ekleyin.

    Bu, veya RequiresProvidesDirectiveProcessoruygulaması DirectiveProcessor gereken bir genel sınıftır.

Özel Yönerge İşlemcisini yüklemek için

  1. Windows Gezgini'nde derleme dizinini açın (genellikle bin\Debug veya bin\Release).

  2. Yönerge işlemcisini başka bir bilgisayara yüklemek isterseniz .vsix dosyasını başka bir bilgisayara kopyalayın.

  3. .vsix dosyasına çift tıklatın. Visual Studio Uzantı Yükleyicisi görüntülenir.

  4. Visual Studio’yu yeniden başlatın. Artık, özel yönerge işlemcisine başvuran yönergeleri içeren metin şablonlarını çalıştırmak mümkün olacaktır. Her yönerge bu şekildedir:

    <#@ CustomDirective Processor="CustomDirectiveProcessorName" parameter1="value1" ... #>

Özel yönerge işlemcisini kaldırmak veya kalıcı olarak devre dışı bırakmak için

  1. Visual Studio Araçları menüsünde Uzantı Yöneticisi'ne tıklayın.

  2. Yönerge işlemcisini içeren VSIX'i seçin ve ardından Kaldır veya Devre Dışı Bırak'a tıklayın.

VSIX'te bir Yönerge İşlemcisine Sorun Giderme İşlemi Yapma

Yönerge işlemcisi çalışmazsa şu öneriler yardımcı olabilir:

  • Özel yönergede belirttiğiniz İşlemci adı, .pkgdef dosyasında belirttiğiniz adla eşleşmelidir CustomDirectiveProcessorName .

  • yönteminizIsDirectiveSupported, adı geçirildiğinde CustomDirectivedöndürülmelidirtrue.

  • Uzantı Yöneticisi'nde uzantıyı göremiyorsanız ancak sistem uzantıyı yüklemenize izin vermiyorsa uzantıyı %localappdata%\Microsoft\VisualStudio\*.0\Extensions\ konumundan silin.

  • .Vsix dosyasını açın ve içeriğini inceleyin. Açmak için, dosya adı uzantısını .zip olarak değiştirin. .dll, .pkgdef ve extension.vsixmanifest dosyalarını içerdiğini doğrulayın. .vsixmanifest uzantı dosyası SupportedProducts düğümü için uygun listeyi içermelidir ve buna ek olarak İçerik düğümü altında bir VsPackage düğümü içermelidir:

    <Content>

    <VsPackage>CustomDirectiveProcessor.dll</VsPackage>

    </Content>

VSPackage'ta Yönerge İşlemcisini Dağıtma

Yönerge işlemciniz GAC'ye yüklenecek VSPackage'ın parçasıysa sistemin sizin için .pkgdef dosyası oluşturmasını sağlayın.

Paket sınıfınıza şu öznitelikleri yerleştirin:

[ProvideDirectiveProcessor(typeof(DirectiveProcessorClass), "DirectiveProcessorName", "Directive processor description.")]

Not

Bu öznitelik, yönerge işlemcisi sınıfına değil, paket sınıfına yerleştirilir.

.pkgdef dosyası projeyi oluşturduğunuzda oluşturulur. VSPackage'i yüklediğinizde, .pkgdef dosyası yönerge işlemcisini kaydeder.

.pkgdef dosyasının, genellikle bin\Debug veya bin\Release olan yapı klasöründe göründüğünü doğrulayın. Görünmezse, .csproj dosyasını bir metin düzenleyicisinde açın ve şu düğümü kaldırın: <GeneratePkgDefFile>false</GeneratePkgDefFile>.

Daha fazla bilgi için bkz . VSPackages.

Bir Kayıt Defteri Anahtarını Ayarlama

Bu, özel bir yönerge işlemcisi yükleme yöntemi en az tercih edilir. Yönerge işlemcisini etkinleştirmek veya devre dışı bırakmak için uygun bir yol sağlamaz; yönerge işlemcisinin başka kullanıcılara dağıtılması yöntemini de sağlamaz.

Dikkat

Kayıt defterini yanlış düzenlemek sisteminize ciddi zararlar verebilir. Kayıt defterinde değişiklikler yapmadan önce, bilgisayarınızdaki tüm değerli verileri yedeklediğinizden emin olun.

Bir kayıt defteri anahtarı ayarlayarak bir yönerge işlemcisi kaydetmek için

  1. regedit'i çalıştırın.

  2. Regedit içinde şuraya gidin:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\*.0\TextTemplating\DirectiveProcessors

    Visual Studio'nun deneysel sürümünde yönerge işlemcisini yüklemek istiyorsanız, "11.0" sonrasında "Exp" ekleyin.

  3. Yönerge işlemcisi sınıfıyla aynı ada sahip bir kayıt defteri anahtarı ekleyin.

    • Kayıt defteri ağacında DirectiveProcessors düğümüne sağ tıklayın, Yeni'nin üzerine gelin ve anahtar'a tıklayın.
  4. Yeni düğümünde, Sınıf ve CodeBase veya Derleme için dize değerlerini aşağıdaki tablolara göre ekleyin.

    1. Oluşturduğunuz düğüme sağ tıklayın, Yeni'nin üzerine gelin ve Dize Değeri'ne tıklayın.

    2. Değerin adını düzenleyin.

    3. Adı çift tıklatın ve verileri düzenleyin.

    Özel yönerge işlemcisi GAC'de değilse, kayıt defteri alt anahtarları aşağıdaki tabloda gibi görünmelidir:

Adı Tip Veri
EnterprisePublishing REG_SZ (değer ayarlı değil)
Sınıf REG_SZ <Ad Alanı Adı>.<Sınıf Adı>
CodeBase REG_SZ <Yolunuz>\<Derleme adınız>

Derleme GAC'deyse, kayıt defteri alt anahtarları aşağıdaki tabloda gibi görünmelidir:

Adı Tip Veri
EnterprisePublishing REG_SZ (değer ayarlı değil)
Sınıf REG_SZ <Tam Sınıf Adınız>
Derleme REG_SZ <GAC'de Derleme Adınız>