Рейтинг:
4
Jochen Arndt
Вы должны включить MSI в свою программу установки и установить ее вместе с вашим приложением.
Непроверенная часть скрипта InnoSetup (см. Также База Знаний Установки Inno[^] ):
[Files]
Source: "[<Path>\]CRRedist<version>.msi"; DestDir: "{tmp}"; Flags: deleteafterinstall
[Run]
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\CRRedist<version>.msi""";
Description: "Crystal Reports"; Flags: waituntilterminated
Вы также можете позволить оболочке выполнить MSI-файл:
[Run]
Filename: "{tmp}\CRRedist<version>.msi"; Description: "Crystal Reports"; Verb: "open"; Flags: shellexec waituntilterminated
См. также раздел
Разделы [Run] & [UninstallRun] [
^] для различных опций и флагов, таких как отображение сообщения о состоянии.
Для обработки ошибок во время установки используйте
Pascal Scripting: ShellExec[
^] функция.
Nitin Surya
я хочу, чтобы он выполнялся без графического интерфейса.. Я имею в виду, что графический интерфейс установки msi-файлов не должен появляться при установке main setup. Возможно ли это?
Jochen Arndt
Смотрите опцию "/q" по адресу Параметры Командной Строки Msiexec. Он может быть использован для отображения нет или уменьшенного пользовательского интерфейса.
Но при этом вы должны добавить "StatusMsg" в раздел запуска InnoSetup, чтобы пользователи знали, что что-то происходит, и он должен быть терпелив.
Nitin Surya
Есть ли какой-нибудь другой способ, кроме установки msi для crystal report, например скопировать и зарегистрировать какую-нибудь dll или что-то другое?
Jochen Arndt
Если есть (но я так не думаю), то почему бы вам сделать это вместо того, чтобы использовать предоставленный установочный пакет?
Это позволит выполнить все необходимые задачи:
Проверка, если он уже установлен, копирование в правильные места и регистрация.
Nitin Surya
"/q" не работает, он должен быть установлен в фоновом режиме.
Jochen Arndt
Что значит "не работает" означает?
Как вы его указали (должно быть вставлено до или после /i, разделенного пробелом)?
Почему вы не хотите показывать какую-либо информацию пользователю?
Вам все равно придется подождать, пока установка не будет завершена.
Nitin Surya
я имею в виду, что он не устанавливался, я использовал "/q /i", теперь он работает нормально.. спасибо Вам за помощь