ICEM09
ICEM09 controleert of de samenvoegmodule veilig vooraf gedefinieerde mappen verwerkt. Dit doet u door te controleren of er geen onderdeel in de module een map installeert in een vooraf gedefinieerde systeemmap, zoals ProgramFilesFolder of StartMenuFolder. In plaats daarvan moeten modules mappen gebruiken met unieke namen (gemaakt met de naamconventie van de samenvoegmodule) en aangepaste acties gebruiken om de juiste doelmap te bereiken. Met deze methode voorkomt u dat modules conflicteren met een bestaande mapstructuur in de uiteindelijke database. ICEM09 controleert of de aangepaste acties die nodig zijn om deze techniek te laten werken, niet bestaan (zodat het samenvoegprogramma deze kan genereren) of bestaan in de juiste vorm (zodat ze werken zoals verwacht).
Het oplossen van een waarschuwing of fout die door ICEM09 is gerapporteerd, kan problemen veroorzaken voor de clients van uw samenvoegmodule. Directorytabelrijen met primaire sleutels zoals ProgramFilesFolder bestaan vaak in een database; Als onderdelen in uw module daarom rechtstreeks worden geïnstalleerd in vooraf gedefinieerde mappen zoals ProgramFilesFolder, kunnen de mapvermeldingen in de module botsen met al bestaande rijen. Voor deze voorwaarde moet de gebruiker van uw module de bronbestanden uit uw module splitsen om overeen te komen met de bestaande bronmap.
Resultaat
ICEM09 rapporteert een fout of waarschuwing wanneer een moduleonderdeel een map installeert in een vooraf gedefinieerde systeemmap, wat een mogelijk naamconflict veroorzaakt met de bestaande mapstructuur.
Voorbeeld
ICEM09 plaatst de volgende waarschuwingen voor een module met de weergegeven databasevermeldingen.
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.
Wijzig de naam van de map van de samenvoegmodule zodat deze niet overeenkomt met een Windows Installer-eigenschap en daarom uniek is. Stel vervolgens een eigenschap van dezelfde naam in op de waarde van de Windows Installer-map. Wanneer adreslijstomzetting plaatsvindt, heeft de map een eigenschap van dezelfde naam, dus de installatielocatie van de map is de waarde van de eigenschap. Bestanden worden verplaatst van de afzonderlijke bronlocatie naar dezelfde doellocatie. Dit proces moet de samenvoegingsconflicten volledig verwijderen.
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'
Als de actie niet het volgnummer 1 heeft, wordt deze mogelijk niet vroeg genoeg samengevoegd met de doeldatabase om effectief te werken.
Als u deze waarschuwing wilt oplossen, stelt u het volgnummer in op 1. Houd er rekening mee dat de meest recente samenvoeghulpprogramma's (maar niet sommige oudere versies) deze aangepaste acties genereren tijdens het samenvoegen, dus het is niet altijd nodig om de acties expliciet te ontwerpen in de samenvoegmodule.
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."
Omdat de kolom CustomAction de primaire sleutel van de CustomAction-tabel is, kunnen sommige samenvoeghulpprogramma's dubbele acties genereren omdat de vooraf geschreven actienaam anders is.
Als u deze waarschuwing wilt oplossen, noemt u de actie hetzelfde als de doelmap. Houd er rekening mee dat de meest recente samenvoeghulpprogramma's (maar niet sommige oudere versies) deze aangepaste acties genereren tijdens het samenvoegen, dus het is niet altijd nodig om de acties expliciet te ontwerpen in de samenvoegmodule.
Map | Directory_Parent | DefaultDir |
---|---|---|
ProgramFilesFolder | Map1 | Een |
StartMenuFolder | Map2 | B:C |
AppDataFolder | Directory3 | D |
MyPicturesFolder | Map4 | E |
Bestanddeel | Map |
---|---|
Component1.<GUID-> | ProgramFilesFolder |
Component2.<GUID-> | StartMenuFolder |
Component3.<GUID-> | AppDataFolder |
Component4.<GUID-> | MyPicturesFolder |
CustomAction | Type | Bron | Doel |
---|---|---|---|
StartMenuFolder.<GUID-> | 51 | StartMenuFolder.<GUID-> | [StartMenuFolder] |
MyAppDataFolderAction | 51 | AppDataFolder.<GUID-> | [AppDataFolder] |
ModuleInstallExecuteSequence Table
Actie | Volgorde | BaseAction | Na | Conditie |
---|---|---|---|---|
StartMenuFolder.<GUID-> | 100 |
Verwante onderwerpen