ICE35
ICE35 valida se os componentes que contêm arquivos compactados armazenados em um arquivo de gabinete não estão definidos para serem executados na origem. Com o Windows Installer 2.0 ou posterior, essa restrição foi removida.
ICE35 consulta a coluna Cabinet da tabela Media para determinar quais arquivos são compactados e armazenados em um arquivo de gabinete. Ele consulta a tabela File para determinar quais componentes contêm esses arquivos. Por fim, ele verifica a tabela Component para determinar se os bits para serem executados na origem estão definidos na coluna Attributes.
ICE35 postará uma mensagem de erro se houver um arquivo compactado armazenado em um arquivo de gabinete pertencente a um componente com o bit msidbComponentAttributesSourceOnly definido na coluna Attributes da tabela Component. Com o Windows Installer 2.0 ou posterior, isso é alterado de um erro para uma mensagem de aviso. Um pacote que dá suporte apenas ao Windows Installer 2.0 e posterior tem a propriedade PID_PAGECOUNT do Fluxo de informações de resumo definida como um valor de pelo menos 200.
ICE35 postará uma mensagem de aviso se houver um arquivo compactado armazenado em um arquivo de gabinete pertencente a um componente com o bit msidbComponentAttributesOptional definido na coluna Attributes da tabela Component. Esta mensagem de aviso foi removida com o Windows Installer 2.0 e posterior.
Se vários arquivos em um componente estiverem em um arquivo de gabinete, o ICE35 relatará erros para todos os arquivos que tiverem o bit para ser executado na origem definido.
ICE35 relata os seguintes erros e avisos para o exemplo mostrado usando uma versão anterior ao Windows Installer versão 2.0.
Erro ICE35 | Descrição |
---|---|
ERRO: o componente Component3 não pode ser executado na origem somente, pois seu arquivo membro 'File3' está compactado. | Há um arquivo compactado armazenado em um arquivo de gabinete e ele pertence a um componente com o bit SourceOnly definido na coluna Attributes da tabela Component. Para corrigir esse erro, altere os 2 bits inferiores do valor dos atributos do Component2 para "00", ou seja, Somente local ou remova File4 do arquivo CAB. |
ERRO: o componente Component3 não pode ser executado na origem somente, pois seu arquivo membro 'File3' está compactado. | Há um arquivo compactado armazenado em um arquivo de gabinete e ele pertence a um componente com o bit SourceOnly definido na coluna Attributes da tabela Component. Como os arquivos em um componente não precisam ter originem na mesma mídia, o ICE35 relata erros para cada arquivo no componente que está em um gabinete. Para corrigir esse erro, altere os 2 bits inferiores do valor dos atributos do Component2 para "00", ou seja, Somente local ou remova File4 do arquivo CAB. |
Tabela Media (parcial)
DiskID | LastSequence | Gabinete |
---|---|---|
1 | 2 | |
2 | 4 | One.cab |
3 | 5 | #Two.cab |
Tabela File (parcial)
Arquivo | Component_ | Sequência |
---|---|---|
Arquivo1 | Component1 | 1 |
Arquivo2 | Component2 | 2 |
Arquivo3 | Component2 | 3 |
Arquivo4 | Component3 | 4 |
Arquivo5 | Component3 | 5 |
Tabela Component (parcial)
Componente | Atributos |
---|---|
Component1 | 0 |
Component2 | 2 |
Component3 | 1 |
Tabela Shortcut (parcial)
Atalho | Icon_ |
---|---|
Shortcut1 | Icon2 |
Observe que os arquivos também podem ser marcados como compactados usando a propriedade Word Count Summary do Fluxo de informações de resumo.