Aracılığıyla paylaş


Bileşen Tablosu

Bileşen tablosu bileşenleri listeler ve aşağıdaki sütunlara sahiptir.

Sütun Tür Anahtar Nullable
Parça Tanımlayıcı Y N
ComponentId GUID N Y
Dizin_ Tanımlayıcı N N
Öznitelik tamsayı N N
Koşul Koşulu N Y
KeyPath Tanımlayıcı N Y

Sütun

Bileşeni

Bileşen kaydını tanımlar.

Birincil tablo anahtarı.

ComponentId

Bu bileşene, sürüme ve dile özgü bir dize GUID'i.

Bu GUID'lerin harflerinin büyük harf olması gerektiğini unutmayın. GUIDGEN gibi yardımcı programlar küçük harfler içeren GUID'ler oluşturabilir. Bu geçerli bileşen kodu GUID'lerini oluşturmak için küçük harflerin büyük harfle değiştirilmesi gerekir.

Bu sütun null ise, yükleyici bileşeni kaydetmez ve bileşen yükleyici tarafından kaldırılamaz veya onarılamaz. Bu, bileşen yalnızca yükleme sırasında gerekliyse, geçici dosyaları temizleyen veya eski bir ürünü kaldıran özel bir eylem gibi kasıtlı olarak yapılabilir. Ayrıca, veri dosyalarını kaydedilmesi gerekmeyen bir kullanıcının bilgisayarına kopyalarken de yararlı olabilir.

Directory_

Directory tablosundaki bir girdinin dış anahtarı. Bu, değeri gerçek yolu içeren ve AppSearch eylemi veya Dizin tablosundan alınan varsayılan ayar ile ayarlanabilen bir özellik adıdır.

Geliştiriciler, kullanıcı profili klasörlerinden birine dosya yerleştiren bileşenler yazmaktan kaçınmalıdır. Bu dosyalar çok kullanıcılı durumlarda tüm kullanıcılar tarafından kullanılamaz ve yükleyicinin onarım gerektirdiği için bileşeni kalıcı olarak görüntülemesine neden olabilir.

Dizin tablosunun birinci sütununa dış anahtar.

Öznitelikleri

Bu sütun, uzaktan yürütme seçeneklerini belirten bir bit bayrağı içerir. Bir seçenek eklemek için belirtilen biti sütundaki toplam değere ekleyin.

Not

Web konumundan indirilen bir .msi dosyası söz konusu olduğunda, öznitelik bayrakları bir bileşenin kaynaktan çalıştırılmasına izin verecek şekilde ayarlanmamalıdır. Bu, Windows Installer'ın bir sınırlamasıdır ve INSTALLSTATE_BADCONFIG özellik durumunu döndürebilir.

Bit bayrağı
msidbComponentAttributesLocalOnly
0
0x0000
Bileşen kaynaktan çalıştırılamaz. Özelliğin ağdan veya kaynaktan çalıştırılmasını önlemek için bir özelliğe ait tüm bileşenler için bu biti ayarlayın. Bir özelliğin bileşeni yoksa, özelliğin her zaman kaynaktan çalıştır ve bilgisayarımdan çalıştır seçeneklerini geçerli seçenekler olarak gösterdiğini unutmayın.
msidbComponentAttributesSourceOnly
1
0x0001
Bileşen yalnızca kaynaktan çalıştırılabilir. Özelliğin bilgisayarımdan çalıştırılmasını önlemek için bu biti bir özelliğe ait tüm bileşenler için ayarlayın. Bir özelliğin bileşeni yoksa, özelliğin her zaman kaynaktan çalıştır ve bilgisayarımdan çalıştır seçeneklerini geçerli seçenekler olarak gösterdiğini unutmayın.
msidbComponentAttributesOptional
2
0x0002
Bileşen yerel olarak veya kaynaktan çalıştırılabilir.
msidbComponentAttributesRegistryKeyPath
4
0x0004
Bu bit ayarlanırsa, KeyPath sütunundaki değer Kayıt Defteri tablosunda anahtar olarak kullanılır. Kayıt Defteri tablosunda karşılık gelen kaydın Değer alanı null ise, bu kayıttaki Ad alanı "+", "-" veya "*" içermemelidir. Daha fazla bilgi için Kayıt Defteri tablosundaki Ad alanının açıklamasınabakın.
HKCU kovanına yazılan kayıt defteri girdileri için bu bitin ayarlanması önerilir. Bu, yükleyicinin aynı makinede birden çok kullanıcı olduğunda gerekli HKCU kayıt defteri girdilerini yazmasını sağlar.
msidbComponentAttributesSharedDllRefCount
8
0x0008
Bu bit ayarlanırsa, yükleyici bileşenin anahtar dosyasının paylaşılan DLL kayıt defterindeki başvuru sayısını artırır. Bu bit ayarlanmadıysa, yükleyici başvuru sayısını yalnızca başvuru sayısı zaten varsa artırır.
msidbComponentAttributesPermanent
16
0x0010
Bu bit ayarlanırsa, yükleyici kaldırma sırasında bileşeni kaldırmaz. Yükleyici, Windows Installer kayıt defteri ayarlarına bileşen için ek bir sistem istemcisi kaydeder.
msidbComponentAttributesODBCDataSource
32
0x0020
Bu bit ayarlanırsa, KeyPath sütunundaki değer ODBCDataSource tablosununbir anahtardır.
msidbComponentAttributesTransitive
64
0x0040
Bu bit ayarlanırsa, yükleyici yeniden yüklemeden sonra Koşul sütunundaki deyiminin değerini yeniden değerlendirir. Değer daha önce False ise ve True olarak değiştirildiyse, yükleyici bileşeni yükler. Değer daha önce True ise ve False olarak değiştirildiyse, bileşen istemci olarak başka ürünlere sahip olsa bile yükleyici bileşeni kaldırır.
Bu bit yalnızca geçişli bileşenler için ayarlanmalıdır. Bkz. geçişli bileşenleri kullanma.
msidbComponentAttributesNeverOverwrite
128
0x0080
Bu bit ayarlanırsa, bileşen için bir anahtar yolu dosyası veya anahtar yolu kayıt defteri girdisi zaten varsa yükleyici bileşeni yüklemez veya yeniden yüklemez. Uygulama kendisini bileşenin istemcisi olarak kaydeder.
Bu bayrağı yalnızca Kayıt Defteri tablosu tarafından kaydedilen bileşenler için kullanın. AppId, Sınıf, Uzantısı, ProgId, MIMEve Fiil tablolarıtarafından kaydedilen bileşenler için bu bayrağı kullanmayın.
msidbComponentAttributes64bit
256
0x0100
Bunu 64 bit bileşen olarak işaretlemek için bu biti ayarlayın. Bu öznitelik, hem 32 bit hem de 64 bit bileşenleri içeren paketlerin yüklenmesini kolaylaştırır. Bu bit ayarlanmadıysa, bileşen 32 bit bileşen olarak kaydedilir.
Bu, 32 bit bileşenin yerini alan 64 bit bir bileşense, bu biti ayarlayın ve ComponentId sütununa yeni bir GUID atayın.
msidbComponentAttributesDisableRegistryReflection
512
0x0200
Bu bileşenden etkilenen tüm mevcut ve yeni kayıt defteri anahtarlarında Kayıt Defteri Yansıması devre dışı bırakmak için bu biti ayarlayın. Bu bit ayarlanırsa, Windows Installer bileşen tarafından erişilen her anahtarda RegDisableReflectionKey çağırır. Bu bit Windows Installer sürüm 4.0 ile kullanılabilir. Bu bit, 32 bit sistemlerde yoksayılır. Bu bit, Windows XP'nin 64 bit sürümlerinde yoksayılır.
Not: 64 bit Windows öykünücüsü (WOW64) üzerinde çalışan 32 bit Windows uygulamalarının, kayıt defterinin 64 bit uygulamalardan farklı bir görünümüne başvurur. Kayıt defteri yansıması, bu iki kayıt defteri görünümü arasında bazı kayıt defteri değerlerini kopyalar.
msidbComponentAttributesUninstallOnSupersedence
1024
0x0400
Bilgisayarda yalnız bırakılmış bileşenlerin bırakılmasını önlemek için düzeltme eki paketindeki bir bileşen için bu biti ayarlayın. Sonraki bir düzeltme eki yüklenirse, msidbPatchSequenceSupersedeEarlier değeriyle işaretlenmiş olan MsiPatchSequence tablosunda ilk düzeltme ekinin yerini alan Windows Installer 4.5 ve üzeri, msidbComponentAttributesUninstallOnSupersedence değeriyle işaretlenmiş bileşenlerin kaydını kaldırabilir ve kaldırabilir. Bileşen bu bitle işaretlenmemişse, yerine geçen bir düzeltme ekinin yüklenmesi bilgisayarda kullanılmayan bir bileşenin arkasında kalabilir.
MSIUNINSTALLSUPERSEDEDCOMPONENTS özelliğinin ayarlanması, tüm bileşenler için bu biti ayarlamakla aynı etkiye sahiptir.
Windows Installer 4.0 ve önceki:msidbComponentAttributesUninstallOnSupersedence değeri desteklenmez ve yoksayılır.

msidbComponentAttributesShared
2048
0x0800
Bir bileşen, sistemde yüklü en az bir pakette bu öznitelik değeriyle işaretlenmişse, yükleyici bileşeni tüm paketlerde işaretlenmiş olarak değerlendirir. İşaretli bileşeni paylaşan bir paket kaldırılırsa, Windows Installer 4.5 kaldırılmakta olan paket tarafından en yüksek sürüm yüklenmiş olsa bile sistemdeki bileşenin en yüksek sürümünü paylaşmaya devam edebilir.
DisableSharedComponent ilkesi 1 olarak ayarlanırsa, hiçbir paket bu bit tarafından etkinleştirilen paylaşılan bileşen işlevselliğini almaz.
Windows Installer 4.0 ve önceki:msidbComponentAttributesShared değeri desteklenmez ve yoksayılır.

Koşulu

Bu sütun, bir bileşenin yüklü olup olmadığını denetleyebilen bir koşullu deyim içerir. Koşul null ise veya true olarak değerlendirilirse bileşen etkinleştirilir. Koşul False olarak değerlendirilirse bileşen devre dışı bırakılır ve yüklenmez.

Koşul alanı bir bileşeni yalnızca CostFinalize eylemisırasında etkinleştirir veya devre dışı bırakır. CostFinalize sonrasında bir bileşeni etkinleştirmek veya devre dışı bırakmak için, MsiSetComponentStateçağırmak için özel bir eylem veya DoAction ControlEvent kullanmanız gerekir.

Öznitelikler sütunundaki Geçişli bit bir bileşen için ayarlanmadığı sürece, Koşul sütunundaki koşullu deyim daha sonra ürünün sonraki bir bakım yüklemesinde False olarak değerlendirilse bile bileşenin yüklendikten sonra etkin kaldığını unutmayın.

Bileşen tablosundaki Koşul sütunu, özelliklerin ve bileşenlerin yüklü durumlarına başvurular içeren koşullu ifadeleri kabul eder. Koşullu deyimlerin söz dizimi hakkında bilgi için bkz. koşullu deyim sözdizimi .

KeyPath

Bu değer, yükleyicinin bileşeni algılamak için kullandığı bileşene ait bir dosya veya klasöre işaret eder. İki bileşen aynı anahtar yolu değerini paylaşamaz. Bu sütundaki değer, MsiGetComponentPath işlevi tarafından döndürülen yoldur.

Değer null değilse, KeyPath Kayıt Defteri, ODBCDataSource veya Dosya tablolarını öznitelik değerine bağlı olarak birincil anahtardır. KeyPath null ise anahtar yolu olarak Directory_ sütununun klasörü kullanılır.

Yükleyici tarafından oluşturulan klasörler boş olduğunda silindiğinden, boş bir klasörden oluşan bir bileşeni yüklemek CreateFolder tablosuna bir girdi yazmanız gerekir.

Bir Windows Installer bileşeni, Windows Resource Protection (WRP) veya Windows Dosya Koruması (WFP) tarafından korunan bir dosya veya kayıt defteri anahtarı içeriyorsa, bu kaynağın bileşen için KeyPath olarak kullanılması gerektiğini unutmayın. Bu durumda, Windows Installer bileşeni yüklemez, güncelleştirmez veya kaldırmaz. Bir yükleme paketine korumalı kaynak eklememelisiniz. Bunun yerine, Windows Kaynak Koruması için desteklenen kaynak değiştirme mekanizmalarını kullanmanız gerekir. Daha fazla bilgi için bkz. Windows Installer ve Windows Resource Protection kullanma.

Açıklamalar

Bileşenler ve özellikler arasındaki ilişki hakkında daha fazla bilgi için bkz. Özellik Tablosu.

Yükleyici, paylaşılan DLL'leri kayıt defterindeki paylaşılan DLL başvuru sayısından bağımsız olarak izler. Kayıt defterinde paylaşılan DLL için başvuru sayısı varsa, yükleyici dosyayı yüklerken her zaman sayıyı artırır ve kaldırılırken sayıyı kaldırır. msidbComponentAttributesSharedDllRefCount ayarlanmazsa ve başvuru sayısı zaten yoksa, yükleyici bir tane oluşturmaz. Sistem klasörüne yüklenen tüm dosyalar için kayıt defterindeki SharedDLL'ler başvuru sayısının artırıldığını unutmayın.

msidbComponentAttributesSharedDllRefCount ayarlanmadıysa, başka bir uygulama hala gerekli olsa bile bileşeni kaldırabilir. Bunun nasıl gerçekleşebileceğini görmek için aşağıdaki senaryoyu göz önünde bulundurun:

  • Yükleyiciyi kullanan bir uygulama paylaşılan bir bileşen yükler.
  • msidbComponentAttributesSharedDllRefCount bit ayarlanmadı ve başvuru sayısı yok. Bu nedenle yükleyici bir başvuru sayısı başlatmaz.
  • Bu bileşeni paylaşan ve yükleyiciyi kullanmayan eski bir uygulama yüklenir.
  • Eski uygulama, paylaşılan bileşen için bir başvuru sayısı oluşturur ve artırır.
  • Eski uygulama kaldırılır.
  • Paylaşılan bileşenin başvuru sayısı sıfıra iner ve bileşen kaldırılır.
  • Yükleyiciyi kullanan uygulamanın artık bileşene erişimi yoktur.

Bu davranışı önlemek için msidbComponentAttributesSharedDllRefCount ayarlayın.

Sistem hizmetleri bileşenlerinin bu tür kullanım için özel olarak tasarlanmadan kaynaktan çalıştır olarak belirtilmemesi gerektiğini unutmayın. Daha fazla ayrıntı için ServiceInstall tablosu bakın.

Kaynaktan çalıştır yüklemesini etkinleştiren özniteliklerin, sistem klasörüne giden dinamik bağlantı kitaplıklarını içeren bileşenler için hiçbir zaman ayarlanmaması gerektiğini unutmayın. Bunun nedeni, bileşenin yükleme durumu bir özelliği takip ederek veya kullanıcı arabiriminde ayarlanarak kaynaktan çalıştır olarak ayarlanırsa, DLL'deki LoadLibrary sonraki çağrıların başarısız olmasıdır.

Ayrıca bkz. Özellik Seçim Durumlarını Denetleme.

Doğrulama

ICE02
ICE03
ICE06
ICE07
ICE08
ice09
ICE18
ICE19
ice21
ICE30
ice32
ICE35
ICE38
ICE41
ICE42
ICE43
ICE46
ICE50
ICE54
ICE57
ICE59
ice62
ice67
ice76
ice79
ICE80
ice83
ICE86
ice88
ICE91
ice92
ICE97