Aracılığıyla paylaş


VSPackage Kayıt

VSPackage'lar, Visual Studio'ya yüklendiklerini ve yüklenmeye hazır olduklarını bildirmelidir. Bu işlem, kayıt defterine bilgi yazılarak gerçekleştirilir. Bu, yükleyicinin tipik bir işidir.

Uyarı

Kendi kendine kayıt kullanmak VSPackage geliştirmesi sırasında kabul edilen bir uygulamadır. Ancak Visual Studio Endüstri İş Ortağı (VSIP) program iş ortakları, kurulum kapsamında kendi kendine kayıt kullanarak ürünlerini gönderemez.

Windows Installer paketindeki kayıt defteri girişleri genellikle Kayıt Defteri tablosunda yapılır. Dosya uzantılarını Kayıt Defteri tablosuna da kaydedebilirsiniz. Ancak, Windows Installer programlı tanımlayıcı (ProgId), sınıf, uzantı ve fiil tabloları aracılığıyla yerleşik destek sağlar. Daha fazla bilgi için bkz. Veritabanı Tabloları.

Kayıt defteri girdilerinizin seçtiğiniz yan yana stratejinize uygun bileşenle ilişkilendirildiğinden emin olun. Örneğin, paylaşılan dosyanın kayıt defteri girdileri bu dosyanın Windows Installer bileşeniyle ilişkilendirilmelidir. Benzer şekilde, sürüme özgü bir dosyanın kayıt defteri girdileri de bu dosyanın bileşeniyle ilişkilendirilmelidir. Aksi takdirde, Visual Studio'nun bir sürümü için VSPackage'ınızı yüklemek veya kaldırmak VSPackage'ınızı diğer sürümlerde bozabilir. Daha fazla bilgi için bkz . Visual Studio'nun Birden Çok Sürümünü Destekleme.

Uyarı

Kaydı yönetmenin en kolay yolu, aynı verileri hem geliştirici kaydı hem de yükleme zamanı kaydı için aynı dosyalarda kullanmaktır. Örneğin, bazı yükleyici geliştirme araçları derleme zamanında dosyayı .reg biçiminde kullanabilir. Geliştiriciler günlük geliştirme ve hata ayıklama için .reg dosyaları tutarsa, aynı dosyalar yükleyiciye otomatik olarak eklenebilir. Kayıt verilerini otomatik olarak paylaşamıyorsanız, yükleyicinin kayıt verilerinin kopyasının güncel olduğundan emin olmanız gerekir.

Yönetilmeyen VSPackage'ları Kaydetme

Yönetilmeyen VSPackage'lar (Visual Studio Paket Şablonu tarafından oluşturulanlar dahil) kayıt bilgilerini depolamak için ATL stili .rgs dosyalarını kullanır. .rgs dosya biçimi ATL'ye özgüdür ve genellikle yükleme yazma aracı tarafından as-is kullanılamaz. VSPackage yükleyicisi için kayıt bilgileri ayrı olarak tutulmalıdır. Örneğin, geliştiriciler, .reg formatındaki dosyaları .rgs dosya değişiklikleriyle senkronize edebilirler. .reg dosyaları geliştirme çalışmaları için RegEdit ile birleştirilebilir veya yükleyici tarafından kullanılabilir.

Yönetilen VSPackage'ları Kaydetme

RegPkg aracı, yönetilen bir VSPackage'dan kayıt özniteliklerini okur ve bilgileri doğrudan kayıt defterine yazabilir veya yükleyici tarafından kullanılabilecek .reg biçimli dosyalar yazabilir.

Uyarı

RegPkg aracı yeniden dağıtılamaz ve kullanıcının sistemine VSPackage kaydetmek için kullanılamaz.

VSPackage'lar Yükleme Zamanında Neden Self-Register Olmamalıdır?

VSPackage yükleyicileriniz kendiliğinden kaydetmeyi kullanmamalıdır. İlk bakışta, VSPackage'ın kayıt defteri değerlerini yalnızca VSPackage'ın kendisinde tutmak iyi bir fikir gibi görünüyor. Geliştiricilerin rutin çalışmaları ve testlerinde kullanılabilir kayıt defteri değerlerine ihtiyacı olduğu göz önüne alındığında, yükleyicide kayıt defteri verilerinin ayrı bir kopyasını tutmaktan kaçınmak mantıklıdır. Yükleyici, kayıt defteri değerlerini yazmak için VSPackage'ın kendisini kullanabilir.

Teoride iyi bir yaklaşım olsa da, otomatik kaydın VSPackage kurulumu için uygun olmayan birkaç kusuru vardır.

  • Yükleme, kaldırma, yükleme geri alma ve kaldırma geri alma işlemlerinin doğru şekilde desteklenmesi için, RegPkg'yi çağırarak kendi kendine kaydolan her yönetilen VSPackage için dört özel eylem yazmanız gerekir.

  • Yan yana destek yaklaşımınız, Visual Studio'nun desteklenen her sürümü için RegSvr32 veya RegPkg'yi çağıran dört özel eylem yazmanızı gerektirebilir.

  • Kendi kendine kaydedilen modülleri içeren bir yükleme güvenli bir şekilde geri alınamaz çünkü kendi kendine kaydedilen anahtarların başka bir özellik veya uygulama tarafından kullanılıp kullanılmadığını anlamanın bir yolu yoktur.

  • Kendi kendine kayıtlı DLL'ler bazen mevcut olmayan veya yanlış sürümde olan yardımcı DLL'lere bağlanır. Buna karşılık, Windows Installer sistemin geçerli durumuna bağımlılığı olmayan kayıt defteri tablolarını kullanarak DLL'leri kaydedebilir.

  • Bir bileşen, kaynak üzerinden çalıştırılacak şekilde belirtilmişse ve SelfReg tablosunda listelenmişse, tip kütüphaneleri gibi ağ kaynaklarına erişim otomatik kayıt kodu tarafından reddedilebilir. Bu, bir yönetim yüklemesi sırasında bileşenin yüklenmesinin başarısız olmasına neden olabilir.