Kullanıcı Ayarları için Destek

VSPackage, bir kullanıcı Araçlar menüsündeki İçeri/Dışarı Aktarma Ayarlar komutunu seçtiğinde kalıcı olan durum değişkenlerinden oluşan bir veya daha fazla ayar kategorisi tanımlayabilir. Bu kalıcılığı etkinleştirmek için Visual Studio SDK'sında ayarlar API'lerini kullanırsınız.

Özel Ayarlar Noktası olarak adlandırılan kayıt defteri girdisi ve GUID, VSPackage'ın ayarlar kategorisini tanımlar. VSPackage, her biri Özel Ayarlar Noktası tarafından tanımlanan birden çok ayar kategorisini destekleyebilir.

  • Birlikte çalışma derlemelerini (arabirimi kullanarak) temel alan ayarların IVsUserSettings uygulamaları, kayıt defterini düzenleyerek veya bir Kayıt Şirketi betiği (.rgs dosyası) kullanarak Özel Ayarlar Noktası oluşturmalıdır. Daha fazla bilgi için bkz . Kayıt Şirketi Betikleri Oluşturma.

  • Yönetilen Paket Çerçevesi 'ni (MPF) kullanan kod, her Özel Ayarlar Noktası için VSPackage'a bir ProvideProfileAttribute ekleyerek Özel Ayarlar Noktaları oluşturmalıdır.

    Tek bir VSPackage birkaç Özel Ayarlar Noktasını destekliyorsa, her Özel Ayarlar Noktası ayrı bir sınıf tarafından uygulanır ve her biri sınıfın ProvideProfileAttribute benzersiz bir örneği tarafından kaydedilir. Sonuç olarak, sınıfı uygulayan bir ayar birden fazla ayar kategorisini destekleyebilir.

Özel Ayarlar Noktası Kayıt Defteri Giriş Ayrıntıları

Özel Ayarlar Noktaları şu konumdaki bir kayıt defteri girdisinde oluşturulur: HKLM\Software\Microsoft\VisualStudio\<Version>\User Ayarlar\<CSPName>; burada <CSPName> VSPackage'ın desteklediği Özel Ayarlar Noktasının adı ve< Sürüm> ise Visual Studio'nun sürümüdür( örneğin 8.0).

Not

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\<Version> kök yolu, Visual Studio tümleşik geliştirme ortamı (IDE) başlatıldığında alternatif bir kökle geçersiz kılınabilir. Daha fazla bilgi için bkz . Komut Satırı Anahtarları.

Kayıt defteri girdisinin yapısı aşağıda gösterilmiştir:

HKLM\Software\Microsoft\VisualStudio\<Version>\User Ayarlar\

<CSPName>= s '#12345'

Paket = '{XXXXXX XXXX XXXX XXXX XXXXXXXX}'

Kategori = '{YYYYYY YYYY YYYYY YYYYYY}'

ResourcePackage = '{zzzzzz zzzz zz zz zz}'

AlternateParent = CategoryName

Adı Tip Veriler Açıklama
EnterprisePublishing REG_SZ Özel Ayarlar Noktasının Adı Anahtarın adı, <CSPName>Özel Ayarlar Noktasının ayrılmamış adıdır.

MPF tabanlı uygulamalar için, oluşturucunun categoryName ve objectName bağımsız değişkenleri içinde categoryName_objectNamebirleştirilerek anahtarın ProvideProfileAttribute adı elde edilir.

Anahtar boş olabilir veya uydu DLL'sindeki yerelleştirilmiş dizeye başvuru kimliğini içerebilir. Bu değer oluşturucunun objectNameResourceID bağımsız değişkeninden ProvideProfileAttribute alınır.
Paket REG_SZ GUID Özel Ayarlar Noktasını uygulayan VSPackage GUID'i.

sınıfını ProvideProfileAttribute kullanan MPF'yi temel alan uygulamalar, bu değeri elde etmek için VSPackage Type ve yansımasını içeren oluşturucunun objectType bağımsız değişkenini kullanır.
Kategori REG_SZ GUID Ayarlar kategorisini tanımlayan GUID.

Birlikte çalışma derlemelerini temel alan uygulamalar için bu değer, Visual Studio IDE'nin ve ImportSettings yöntemlerine ExportSettings geçirdiği rastgele seçilmiş bir GUID olabilir. Bu iki yöntemin tüm uygulamaları GUID bağımsız değişkenlerini doğrulamalıdır.

MPF tabanlı uygulamalar için bu GUID, Visual Studio ayarları mekanizmasını uygulayan sınıfın tarafından Type elde edilir.
ResourcePackage REG_SZ GUID isteğe bağlı.

Uygulanan VSPackage bunları sağlamazsa yerelleştirilmiş dizeler içeren uydu DLL yolu.

MPF, vspackage doğru kaynağı elde etmek için yansıma kullanır, bu nedenle ProvideProfileAttribute sınıfı bu bağımsız değişkeni ayarlamaz.
AlternateParent REG_SZ Bu Özel Ayarlar Noktasını içeren Araçlar Seçenekleri sayfasının altındaki klasörün adı. isteğe bağlı.

Bu değeri yalnızca bir ayar uygulaması, otomasyon modelindeki durumu kaydetme mekanizması yerine Visual Studio SDK'sında kalıcılık mekanizmasını kullanan Araçlar Seçenekleri sayfalarını destekliyorsa ayarlamanız gerekir.

Böyle durumlarda, AlternateParent anahtarındaki değer, belirli ToolsOptions sayfasını tanımlamak için kullanılan dizenin topic.sub-topic bölümüdürtopic. Örneğin, AraçlarSeçenekler sayfası "TextEditor.Basic" için AlternateParent değeri olacaktır"TextEditor".

ProvideProfileAttribute Özel Ayarlar Noktası oluşturulduğunda, kategori adıyla aynıdır.