Megosztás a következőn keresztül:


Összetevő táblázata

A Komponens tábla az összetevőket listázza, és az alábbi oszlopokkal rendelkezik.

Oszlop Típus Kulcs Nullázható
Komponens azonosító Y N
ComponentId GUID N Y
Címtár_ azonosító N N
Attribútumok egész szám N N
Feltétel feltétel N Y
KeyPath azonosító N Y

Oszlopok

összetevő

Azonosítja az összetevőrekordot.

Elsődleges táblakulcs.

ComponentId

Az összetevőre, verzióra és nyelvre egyedi sztring GUID.

Vegye figyelembe, hogy ezeknek a grafikus GUID-knek nagybetűsnek kell lenniük. Az olyan segédprogramok, mint a GUIDGEN, kisbetűket tartalmazó GRAFIKUS GUID-ket hozhatnak létre. A kisbetűket nagybetűsre kell módosítani ahhoz, hogy ezek az érvényes összetevőkód-GUID-k legyenek.

Ha ez az oszlop null értékű, a telepítő nem regisztrálja az összetevőt, és az összetevőt nem tudja eltávolítani vagy javítani a telepítő. Ez szándékosan történhet, ha az összetevőre csak a telepítés során van szükség, például egy egyéni műveletre, amely eltávolítja az ideiglenes fájlokat, vagy eltávolít egy régi terméket. Akkor is hasznos lehet, ha olyan adatfájlokat másol egy felhasználó számítógépére, amelyeket nem kell regisztrálni.

Directory_

A Címtár táblabejegyzésének külső kulcsa. Ez egy olyan tulajdonságnév, amelynek értéke a tényleges elérési utat tartalmazza, amelyet az AppSearch művelet vagy a Címtár táblából kapott alapértelmezett beállítással állíthat be.

A fejlesztőknek el kell kerülniük azokat az összetevőket, amelyek fájlokat helyeznek a felhasználói profil egyik mappájába. Ezek a fájlok nem érhetők el minden felhasználó számára többfelhasználós helyzetekben, és a telepítő véglegesen javításra szorulónak tekintheti az összetevőt.

A címtártábla egyik oszlopához tartozó külső kulcs.

attribútumok

Ez az oszlop egy bitjelölőt tartalmaz, amely megadja a távoli végrehajtás beállításait. Adja hozzá a megadott bitet az oszlop teljes értékéhez, hogy belefoglaljon egy lehetőséget.

Jegyzet

Ha egy webhelyről letöltött .msi fájlról van szó, az attribútumjelölőket nem szabad úgy beállítani, hogy lehetővé tegyék az összetevők forrásból való futtatását. Ez a Windows Installer korlátozása, és visszaadhatja a INSTALLSTATE_BADCONFIG szolgáltatásállapotát.

Bitjelző
msidbComponentAttributesLocalOnly
0
0x0000
Az összetevő nem futtatható forrásból. Állítsa be ezt a bitet a szolgáltatáshoz tartozó összes összetevőhöz, hogy megakadályozza a szolgáltatás hálózati vagy forrásból való futtatását. Vegye figyelembe, hogy ha egy szolgáltatás nem tartalmaz összetevőket, a funkció mindig érvényes beállításként jeleníti meg a forrásból való futtatás és a futtatás a saját számítógépről lehetőséget.
msidbComponentAttributesSourceOnly
1
0x0001
Az összetevő csak forrásból futtatható. Állítsa be ezt a bitet a szolgáltatáshoz tartozó összes összetevőhöz, hogy megakadályozza a szolgáltatás futtatását a számítógépről. Vegye figyelembe, hogy ha egy szolgáltatás nem tartalmaz összetevőket, a funkció mindig érvényes beállításként jeleníti meg a forrásból való futtatás és a futtatás a saját számítógépről lehetőséget.
msidbComponentAttributesOptional
2
0x0002
Az összetevő helyileg vagy forrásból is futtatható.
msidbComponentAttributesRegistryKeyPath
4
0x0004
Ha ez a bit be van állítva, a KeyPath oszlopban lévő érték lesz kulcsként használva a Beállításjegyzék-táblában. Ha a Beállításjegyzék tábla megfelelő rekordjának Érték mezője null, akkor a rekord Név mezőjében nem szerepelhet "+", "-" vagy "*". További információ: a Név mező leírása Beállításjegyzék tábla.
A bit beállítása ajánlott a HKCU-hive-be írt beállításjegyzék-bejegyzésekhez. Ez biztosítja, hogy a telepítő megírja a szükséges HKCU-beállításjegyzék-bejegyzéseket, ha ugyanazon a gépen több felhasználó is van.
msidbComponentAttributesSharedDllRefCount
8
0x0008
Ha ez a bit be van állítva, a telepítő növeli az összetevő kulcsfájljának megosztott DLL-beállításjegyzékében lévő referenciaszámot. Ha ez a bit nincs beállítva, a telepítő csak akkor növeli a referenciaszámot, ha a hivatkozási szám már létezik.
msidbComponentAttributesPermanent
16
0x0010
Ha ez a bit be van állítva, a telepítő nem távolítja el az összetevőt az eltávolítás során. A telepítő regisztrál egy extra rendszerügyfélt az összetevőhöz a Windows Installer beállításjegyzék-beállításai között.
msidbComponentAttributesODBCDataSource
32
0x0020
Ha ez a bit be van állítva, a KeyPath oszlop értéke egy kulcs a ODBCDataSource tábla.
msidbComponentAttributesTransitive
64
0x0040
Ha ez a bit be van állítva, a telepítő újraértékeli az utasítás értékét a Feltétel oszlopban újratelepítéskor. Ha az érték korábban Hamis volt, és Igaz értékre változott, a telepítő telepíti az összetevőt. Ha az érték korábban Igaz volt, és Hamis értékre változott, a telepítő akkor is eltávolítja az összetevőt, ha az összetevő más termékekkel rendelkezik ügyfélként.
Ezt a bitet csak tranzitív összetevőkhöz kell beállítani. Lásd: Tranzitív összetevők használata.
msidbComponentAttributesNeverOverwrite
128
0x0080
Ha ez a bit be van állítva, a telepítő nem telepíti vagy telepíti újra az összetevőt, ha már létezik kulcs elérésiút-fájl vagy kulcsútvonal-beállításjegyzék-bejegyzés az összetevőhöz. Az alkalmazás regisztrálja magát az összetevő ügyfeleként.
Ezt a jelzőt csak a Beállításjegyzék-tábla által regisztrált összetevőkhöz használja. Ne használja ezt a jelzőt az AppId, Osztály, Bővítmény, ProgId, MIMEés Verb táblákáltal regisztrált összetevőkhöz.
msidbComponentAttributes64bit
256
0x0100
Állítsa be ezt a bitet úgy, hogy 64 bites összetevőként jelölje meg. Ez az attribútum megkönnyíti a 32 bites és a 64 bites összetevőket is tartalmazó csomagok telepítését. Ha ez a bit nincs beállítva, az összetevő 32 bites összetevőként van regisztrálva.
Ha ez egy 64 bites összetevő, amely lecserél egy 32 bites összetevőt, állítsa be ezt a bitet, és rendeljen hozzá egy új GUID azonosítót a ComponentId oszlopban.
msidbComponentAttributesDisableRegistryReflection
512
0x0200
Állítsa be ezt a bitet úgy, hogy letiltsa beállításjegyzék-tükrözési az összetevő által érintett összes meglévő és új beállításkulcson. Ha ez a bit be van állítva, a Windows Installer meghívja a RegDisableReflectionKey az összetevő által elért összes kulcsra. Ez a bit a Windows Installer 4.0-s verziójával érhető el. Ezt a bitet a rendszer figyelmen kívül hagyja a 32 bites rendszereken. Ezt a bitet a Rendszer figyelmen kívül hagyja a Windows XP 64 bites verzióiban.
megjegyzés: 64 bites Windows emulátoron (WOW64) futó 32 bites Windows-alkalmazások a 64 bites alkalmazásoktól eltérő nézetre hivatkoznak. A beállításjegyzék tükrözése a két beállításjegyzék-nézet között másol néhány beállításjegyzék-értéket.
msidbComponentAttributesUninstallOnSupersedence
1024
0x0400
Állítsa be ezt a bitet egy javításcsomag egyik összetevőjére, hogy ne hagyja az árva összetevőket a számítógépen. Ha egy későbbi javítás van telepítve, az msidbPatchSequenceSupersedeEarlier MsiPatchSequence táblában az első javítás felülírásához, A Windows Installer 4.5 és újabb verziói törölhetik az msidbComponentAttributesUninstallOnSupersedence értékkel megjelölt összetevők regisztrációját és eltávolítását. Ha az összetevő nincs megjelölve ezzel a bittel, a felülíró javítás telepítése egy nem használt összetevőt hagyhat hátra a számítógépen.
A MSIUNINSTALLSUPERSEDCOMPONENTS tulajdonságának beállítása ugyanolyan hatással van, mint a bit beállítása az összes összetevőre.
Windows Installer 4.0-s és korábbi: Az msidbComponentAttributesUninstallOnSupersedence érték nem támogatott, és figyelmen kívül hagyja.

msidbComponentAttributesShared
2048
0x0800
Ha egy összetevőt ez az attribútumérték jelöl a rendszeren telepített legalább egy csomagban, a telepítő az összetevőt az összes csomagban megjelöltként kezeli. Ha a rendszer eltávolít egy olyan csomagot, amely megosztja a megjelölt összetevőt, a Windows Installer 4.5 továbbra is megoszthatja az összetevő legmagasabb verzióját a rendszeren, még akkor is, ha az eltávolítandó csomag telepítette a legmagasabb verziót.
Ha a DisableSharedComponent házirend 1 értékre van állítva, egyetlen csomag sem engedélyezi a bit által engedélyezett megosztott összetevő-funkciókat.
Windows Installer 4.0-s és korábbi: A msidbComponentAttributesShared érték nem támogatott, és figyelmen kívül hagyja.

feltétel

Ez az oszlop egy feltételes utasítást tartalmaz, amely szabályozhatja, hogy egy összetevő telepítve van-e. Ha a feltétel null értékű, vagy igaz értékre van kiértékelve, akkor az összetevő engedélyezve van. Ha a feltétel értéke Hamis, akkor az összetevő le van tiltva, és nincs telepítve.

A Feltétel mező csak az CostFinalize műveletsorán engedélyezi vagy tiltja le az összetevőket. Ha engedélyezni vagy letiltani szeretne egy összetevőt a CostFinalize után, egyéni műveletet vagy DoAction ControlEvent kell használnia MsiSetComponentStatemeghívásához.

Vegye figyelembe, hogy ha az Attribútumok oszlop tranzitív bitje nincs beállítva egy összetevőhöz, az összetevő a telepítés után is engedélyezve marad, még akkor is, ha a Feltétel oszlopban lévő feltételes utasítás később hamis értéket ad vissza a termék későbbi karbantartási telepítésekor.

A Komponens tábla Feltétel oszlopa olyan feltételes kifejezéseket fogad el, amelyek a szolgáltatások és összetevők telepített állapotára mutató hivatkozásokat tartalmaznak. A feltételes utasítások szintaxisával kapcsolatos információkért lásd feltételes utasítás szintaxisát.

KeyPath

Ez az érték az összetevőhöz tartozó fájlra vagy mappára mutat, amelyet a telepítő az összetevő észlelésére használ. Két összetevő nem oszthatja meg ugyanazt a kulcs elérési útját. Az oszlop értéke a MsiGetComponentPath függvény által visszaadott elérési út is.

Ha az érték nem null, akkor a KeyPath vagy elsődleges kulcs a Beállításjegyzék, ODBCDataSource, vagy Fájltáblák az attribútum értékétől függően. Ha a KeyPath értéke null, akkor a rendszer a Directory_ oszlop mappáját használja kulcsútvonalként.

Mivel a telepítő által létrehozott mappák üressé válásukkor törlődnek, a CreateFolder tábla bejegyzést kell létrehoznia egy üres mappából álló összetevő telepítéséhez.

Vegye figyelembe, hogy ha a Windows Installer-összetevő olyan fájlt vagy beállításkulcsot tartalmaz, amelyet Windows Resource Protection (WRP) vagy Windows File Protection (WFP) véd, akkor ezt az erőforrást kell használni az összetevő KeyPath-jaként. Ebben az esetben a Windows Installer nem telepíti, frissíti vagy távolítja el az összetevőt. A telepítési csomagban nem szabad védett erőforrásokat felvenni. Ehelyett a Windows Resource Protection támogatott erőforrás-csere mechanizmusait kell használnia. További információ: A Windows Installer és a Windows Resource Protectionhasználata.

Megjegyzések

Az összetevők és szolgáltatások közötti kapcsolatról a Funkciótáblacímű témakörben olvashat.

A telepítő a megosztott DLL-eket a beállításjegyzék megosztott DLL-hivatkozásainak számától függetlenül követi nyomon. Ha a beállításjegyzékben létezik hivatkozásszám egy megosztott DLL-hez, a telepítő mindig növeli a fájl telepítésének számát, és az eltávolításkor csökken. Ha msidbComponentAttributesSharedDllRefCount, nincs beállítva, és a referenciaszám még nem létezik, a telepítő nem hoz létre egyet. Vegye figyelembe, hogy a rendszer a rendszermappába telepített fájlok esetében növeli a megosztott DLL-referenciaszámot a beállításjegyzékben.

Ha msidbComponentAttributesSharedDllRefCount nincs beállítva, akkor egy másik alkalmazás akkor is eltávolíthatja az összetevőt, ha még szükség van rá. Ha meg szeretné tudni, hogy ez hogyan fordulhat elő, fontolja meg a következő forgatókönyvet:

  • A telepítőt használó alkalmazás egy megosztott összetevőt telepít.
  • Az msidbComponentAttributesSharedDllRefCount bit nincs beállítva, és nincs hivatkozásszám. Így a telepítő nem kezdi meg a referenciaszámot.
  • Telepítve van egy régi alkalmazás, amely megosztja ezt az összetevőt, és nem használja a telepítőt.
  • Az örökölt alkalmazás létrehozza és növeli a megosztott összetevő hivatkozásainak számát.
  • A rendszer eltávolítja az örökölt alkalmazást.
  • A megosztott összetevő hivatkozási száma nullára csökken, és az összetevő el lesz távolítva.
  • A telepítőt használó alkalmazásnak már nincs hozzáférése az összetevőhöz.

A viselkedés elkerülése érdekében állítsa be msidbComponentAttributesSharedDllRefCount.

Vegye figyelembe, hogy a rendszerszolgáltatások összetevőit nem szabad forrásból futtatottként megadni anélkül, hogy kifejezetten erre a használatra lettek volna tervezve. További részletekért lásd a ServiceInstall tábla.

Vegye figyelembe, hogy a forrásból történő telepítést engedélyező attribútumokat soha nem szabad beállítani a rendszermappába bemenő dinamikus csatolású kódtárakat tartalmazó összetevőkhöz. Ennek az az oka, hogy ha az összetevő telepítési állapota egy funkció követésével vagy a felhasználói felületen való beállítással forrásból futtathatóvá válik, a DLL-n LoadLibrary hívásai sikertelenek lesznek.

Lásd még: Funkcióválasztási állapotok szabályozása.

Érvényesítés

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