Pracuję nad instalatorem w InstallShield 2012 Spring.
Instalator jest przeznaczony dla aplikacji zbudowanej w .NET, która zbudowana jest jako "Dowolny procesor", co oznacza, że działa 32-bitowo na komputerze 32-bitowym i 64-bitowym na komputerze 64-bitowym.
Zakładam, że oznacza to, że wniosek powinienzawsze instaluj w folderze Program Files, a nie w folderze Program Files (x86). Nie mogę znaleźć sposobu na zainstalowanie aplikacji w 64-bitowym folderze Program Files bez renderowania instalatora, który nie może być użyty w 32-bitowych wersjach systemu Windows.
Próbowałem po prostu zmienić ścieżkę instalacji zProgramFilesFolder to ProgramFiles64Folder, ale robi to wszystko, chyba że zrobiłem komponent 64-bitowy i ustawiłem instalator na x64. (W ten sposób czyniąc instalator 64-bitowym TYLKO)
Każdy pomysł, jak zrobić, aby instalator nigdy nie instalował się w folderze (x86), czy jestem SOL?
Odpowiedzi:
1 dla odpowiedzi № 1Instalator Windows nie obsługuje "żadnego procesora". MSI "muszą być oznaczone jako x86 lub x64 i mogą używać tylko odpowiednio ProgramFilesFolder i ProgramFiles64Folder.Jeśli masz niestandardową akcję, która próbuje ręcznie ustawić katalog docelowy, usługa Instalatora Windows przechwyci ścieżkę i popchnie ją, zakładając, że mieć źle napisany MSI i wymuszać zgodność.
Ale tak naprawdę nie ma to znaczenia: Twój Any CPU skompilowany program EXE w 32-bitowym folderze PF nadal będzie działał jako aplikacja 64-bitowa.
Jeśli tak bardzo Ci to przeszkadza, możesz użyć krótkiej nazwy katalogu (C: Progra ~ 1) w tej niestandardowej akcji, o której wspomniałem i podważyć próby "pomocy" MSI.