2009-10-30 19 views
5

Jeden z naszych MSI zaczął nie działać z błędem 2902. Dostanie się na większą część instalacji, pojawi się okno błędu, a następnie wycofa instalację. Nie wprowadziliśmy większych zmian do instalatora od czasu ostatniej działającej wersji.Co może spowodować błąd 2902 podczas instalowania MSI?

Running msiexec z logowaniem włączona daje komunikat bardziej informacyjny:

Action 17:21:22: RegisterProduct. Registering product 
Error 2902: Operation ixoFileCopy called out of sequence 

to pochodzi bezpośrednio po sekcji "WriteRegistryValues". Czy ktoś wie, co powoduje wywołanie do ixoFileCopy? Zgaduję, że rozwiązanie będzie wymagało zmiany sekwencji kroku "RegisterProduct", ale nie jestem pewien, co należy zrobić.

Dzięki za pomoc!

Odpowiedz

2

Okazuje się, że w naszym przypadku miało to miejsce, ponieważ plik danych stał się zbyt duży, aby MSI mógł go obsługiwać bez dzielenia kabiny. This thread wspomina o problemie i jednym możliwym obejściu problemu.

+0

Tylko dla kompletności, ** msi.chm ** (dokumentacja SDK) stwierdza w uwadze dla kodu błędu 2902: * "Może wskazywać, że instalacja zestawów Win32 została napisana niepoprawnie. składnik boczny może potrzebować ścieżki klucza. * " –

1

Miałem ten sam błąd.

Najwyraźniej brakowało lub uszkodzono pliki (błąd sieciowy?). Problem został rozwiązany po ponownym skopiowaniu całego folderu.

1

Widziałem również ten błąd, gdy komponenty są dostarczane z pustymi znakami.

np.

<Component Id="cmp_MyFailingComponent" Guid=""> 
    <File Id="f_myFile" 
    Assembly=".net" 
    Source="C:\Program Files\MyFile.dll" 
    KeyPath="yes"/> 
</Component> 
+0

Tak więc, jeśli zgłoszę się do Google z powodu problemu, który mam i przyjmuję własną odpowiedź sprzed 3 lat, to znaczy, że tracę swoje marmury ... (westchnienie...) –

0

Widziałem ten błąd, gdy niektóre pola kolumny bazy danych są dłuższe niż szerokość kolumny.

Przekształciłem MSI w projekt InstallShield, dodałem kilka dodatków i zbudowałem nowy MSI - zbudowany bez żadnych błędów. Instalacja nie powiodła się z powodu błędu 2902.

Komponenty, których nie powiodło się, miały nazwy komponentów dłuższe niż dozwolone 72 znaki. (zobacz Tabela składników) Oryginalny MSI działał dobrze pomimo długich nazw, ale domyślam się, że spowodowali oni, że InstallShield nieprawidłowo zbudował MSI. Nie błąd InstallShield, chociaż uważam, że powinien on spowodować błąd podczas kompilacji.

Powiązane problemy