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


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ártábla

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

 

összetevőtábla

Komponens Címtár
1. összetevő.<GUID> ProgramFilesFolder
2. összetevő.<GUID> StartMenuFolder
Komponens3.<GUID> AppDataFolder
4. összetevő.<GUID> MyPicturesFolder

 

CustomAction Table

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

 

MODUL ICE-referencia egyesítése