ICEM09
Az ICEM09 ellenőrzi, hogy az egyesítési modul biztonságosan kezeli-e az előre definiált könyvtárakat. Ezt úgy teszi, hogy ellenőrzi, hogy a modul egyik összetevője sem telepít-e könyvtárat egy előre definiált rendszerkönyvtárba, például a "ProgramFilesFolder" vagy a "StartMenuFolder" könyvtárba. Ehelyett a moduloknak egyedi neveket tartalmazó könyvtárakat kell használniuk (amelyeket az egyesítési modul elnevezési konvencióval hoztak létre), és egyéni műveleteket kell használniuk a megfelelő célkönyvtár megcélzásához. Ez a módszer megakadályozza, hogy a modulok ütköznek a végleges adatbázisban lévő meglévő címtárstruktúrával. Az ICEM09 ellenőrzi, hogy a technika működéséhez szükséges egyéni műveletek vagy nem léteznek (így az egyesítési eszköz létrehozhatja őket), vagy a megfelelő formában léteznek (hogy a várt módon működjenek).
Az ICEM09 által jelentett figyelmeztetés vagy hiba kijavításának elmulasztása problémákat okozhat az egyesítési modul ügyfelei számára. Az elsődleges kulcsokkal (például a ProgramFilesFolderrel) rendelkező címtártáblasorok gyakran léteznek az adatbázisban; Ezért ha a modul összetevői közvetlenül az előre definiált könyvtárakba, például a ProgramFilesFolderbe települnek, a modul címtárbejegyzései ütközhetnek a már meglévő sorokkal. Ehhez a feltételhez a modul felhasználójának fel kell osztania a forrásfájlokat a modulból, hogy megfeleljen a meglévő forráskönyvtárnak.
Eredmény
Az ICEM09 hibát vagy figyelmeztetést jelent, ha egy modulösszetevő egy előre definiált rendszerkönyvtárba telepít egy könyvtárat, ami lehetséges névütközést okoz a meglévő címtárstruktúrával.
Példa
Az ICEM09 a következő figyelmeztetéseket jeleníti meg egy olyan modulra vonatkozóan, amely tartalmazza a megjelenített adatbázis-bejegyzéseket.
Warning: The component 'Component1.<GUID>' installs directly into the pre-defined
directory 'ProgramFilesFolder'. It is recommended that merge modules alias
all such directories to unique names.
Nevezze át az egyesítési modul könyvtárát, hogy az ne egyezzen meg a Windows Installer tulajdonságával, ezért egyedi. Ezután állítson be egy azonos nevű tulajdonságot a Windows Installer könyvtár értékére. A címtárfeloldás során a címtárnak azonos nevű tulajdonsága van, ezért a címtár telepítési helye a tulajdonság értéke. A fájlok az eltérő forráshelyről ugyanarra a célhelyre lépnek. Ennek a folyamatnak teljesen el kell távolítania az egyesítési ütközéseket.
Warning: The 'ModuleInstallExecuteSequence' table contains a type 51 action
(StartMenuFolder.<GUID>) for a pre-defined directory, but this action
does not have sequence number '1'
Ha a művelet nem rendelkezik 1. sorszámmal, előfordulhat, hogy nem egyesül a céladatbázissal elég korán ahhoz, hogy hatékonyan működjön.
A figyelmeztetés kijavításához állítsa a sorszámot 1 értékre. Vegye figyelembe, hogy a legtöbb jelenlegi egyesítési eszköz (de nem néhány régebbi verzió) egyesítéskor hozza létre ezeket az egyéni műveleteket, ezért nem mindig szükséges explicit módon létrehozni a műveleteket az egyesítési modulban.
Warning: The 'CustomAction' table contains a type 51 action (MyAppDataFolderAction)
for a pre-defined directory, but the name is not the same as the target directory.
Many merge tools will generate duplicate actions."
Mivel a CustomAction oszlop a CustomAction tábla elsődleges kulcsa, egyes egyesítési eszközök ismétlődő műveleteket hozhatnak létre, mert az előre létrehozott művelet neve eltérő.
A figyelmeztetés kijavításához nevezze el a műveletet a célkönyvtárral megegyező névvel. Vegye figyelembe, hogy a legtöbb jelenlegi egyesítési eszköz (de nem néhány régebbi verzió) egyesítéskor hozza létre ezeket az egyéni műveleteket, ezért nem mindig szükséges explicit módon létrehozni a műveleteket az egyesítési modulban.
Címtár | Directory_Parent | DefaultDir |
---|---|---|
ProgramFilesFolder | Címtár1 | Egy |
StartMenuFolder | Címtár2 | B:C |
AppDataFolder | Címtár3 | D |
MyPicturesFolder | Címtár4 | E |
Komponens | Címtár |
---|---|
1. összetevő.<GUID> | ProgramFilesFolder |
2. összetevő.<GUID> | StartMenuFolder |
Komponens3.<GUID> | AppDataFolder |
4. összetevő.<GUID> | MyPicturesFolder |
CustomAction | Típus | Forrás | Cél |
---|---|---|---|
StartMenuFolder.<GUID> | 51 | StartMenuFolder.<GUID> | [StartMenuFolder] |
MyAppDataFolderAction | 51 | AppDataFolder.<GUID> | [AppDataFolder] |
ModuleInstallExecuteSequence tábla
Akció | Következés | BaseAction | Után | Feltétel |
---|---|---|---|---|
StartMenuFolder.<GUID> | 100 |
Kapcsolódó témakörök
-
MODUL ICE-referencia egyesítése