/ / Jak zbudować InstallShield dla aplikacji .NET "Any CPU" - .net, installer, windows-installer, installshield

Jak zbudować InstallShield dla .NET "Any CPU" App - .net, installer, windows-installer, installshield

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 № 1

Instalator 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.