Наш установщик (установщик Windows) принимает параметр командной строки в форме PROPERTY = значение. Параметр будет помещать один из 3 файлов в зависимости от его значения (или его отсутствия). Это хорошо работает при установке с использованием ...Применение параметров командной строки MSI для административной установки
msiexec.exe /i filename.msi PROPERTY=value
Я хотел бы выполнить административную установку и передать параметр PROPERTY = значение, так что извлеченное изображение отражает обычную установку, если используется этот параметр. Я попробовал следующее ...
msiexec.exe /a filename.msi PROPERTY=value /qn TARGETDIR=C:\MSIImagePath
msiexec.exe /a filename.msi /qn TARGETDIR=C:\MSIImagePath PROPERTY=value
msiexec.exe /a "filename.msi PROPERTY=value" /qn TARGETDIR=C:\MSIImagePath
Третьей команду там утончается не работает, а первые два производит изображение, если установщик запускался без указания параметра PROPERTY = значение, других слов, как если я установил как ...
msiexec.exe /i filename.msi
Как я могу выполнить административную установку переходящего в PROPERTY = значение параметра нашей MSI ожидает и имеют Извлеченный Mirror Image файлов, которые должны быть установлены при использовании этой комбинации свойств/значений ?
EDIT: Вот основная проблема, стоящая за вопросом.
Мы перемещаем наш процесс сборки на Azure VM и используем Bamboo для управления им. Мы используем InstallShield для создания инсталляторов. Когда мы создаем патчи, я понимаю, что InstallShield должен иметь доступ к образцу установки базовой линии, чтобы знать, как создать обновление MSP. Мне также сказали, что я могу создать образ установщика базовой линии, используя административную установку, которая, кажется, именно то, что мне нужно. Я не специалист по установке в команде, но пока все это имеет смысл для меня.
Когда мы создаем исходный MSI, мы вызываем IsCmdBld.exe дважды, каждый раз передавая другое имя выпуска с использованием параметра -r. Первый проход создает единый MSI, который распространяется среди пользователей. Второй проход создает несжатую папку, которая выглядит точно так, как вы видите при выполнении административной установки. Он содержит меньшую MSI, и все файлы в процессе установки извлекаются в папку. Именно эта папка InstallShield использует в качестве базового образа установщика, из которого создается логика патча.
Один из файлов, которые мы устанавливаем, может содержать 4 разных файла, определяемых параметром PROPERTY = value. Этот файл применяет определенные ограничения к продукту и предназначен для использования администраторами для ограничения некоторых функций для дополнительной безопасности. Чтобы выполнить это, проект InstallShield имеет 4 компонента, и каждый из них использует одинаковое имя файла для установленного файла и различные имена файлов для исходного файла. Я назову установленный файл файлом управления безопасностью и 4 исходными файлами файлы ограничений безопасности. Файлы ограничений безопасности не устанавливаются напрямую, один из них устанавливается в качестве файла управления безопасностью на основе параметра PROPERTY = value (или его отсутствия.)
Надеюсь, что все до сих пор имеет смысл. Поскольку у нас есть эта несколько нечетная настройка, в которой файл управления безопасностью является динамическим и изменяется во время установки, InstallShield должен выбрать один из 4 файлов ограничений безопасности, которые будут использоваться в качестве источника для файла управления безопасностью при создании MSI. Несжатый образ установщика, созданный при вызове IsCmdBld.exe, использует файл ограничения безопасности, который отличается от, чем тот, который выбран при выполнении административной установки. По этой причине при создании патчей я не могу точно воссоздать образ установки базовой линии, необходимый для создания патча. Это не было проблемой раньше, когда у нас была статическая машина сборки, а начальное состояние сборки было конечным состоянием предыдущей сборки. У нас всегда был исходный исходный образ установщика, который был создан IsCmdBld.exe.
Я могу обойти это просто, выполнив административную установку и скопировав необходимый файл управления безопасностью в исходное изображение или просто закрепив требуемое изображение базовой линии и используя это. Я просто надеялся, что смогу передать PROPERTY = значение административной установке, чтобы воссоздать базовую линию совершенно одним махом.
Спасибо, PhilDW. Это имеет смысл, и ваш разум №2 - это то, что мы делаем. Мы используем нашу первую установочную установку для установки в качестве базовой линии для создания патчей. Я добавил дополнительную информацию к моему вопросу о том, почему это не работает для нас. У нас есть несколько нетрадиционный файл, который отбрасывает оттуда административную установку от того, что она должна быть. –
Я принял ваш ответ, PhilDW. Я думаю, вы правы в том, что это невозможно. Я немного изменил направление и просто закрепил первую несжатую установочную папку и сделал ее доступной для последующих сборок для создания патча. –