Я тестирую совместимость двух продуктов (A) и (B) в рамках проекта TestAutomation.Тест проверяет, что продукт (B), который фактически является тестируемым продуктом, может быть установлен даже после того, как (A) уже установлен -> для этого установщик (B) ищет, если UpgradeCode из (A) присутствует.
ПРИМЕЧАНИЕ. Я уже знаю код обновления (A).То, что я пытаюсь сделать, это записать это в таблицу, которая будет проверена после установки (B), БЕЗ фактической установки MSI (A) - это как «насмешка» в интеграции-testing.
Тест выполняется на виртуальной машине, где (A) еще не установлена по умолчанию.Моей целью было бы написать сценарий, который позволил бы мне пропустить «настоящую» установку (A).
ВОПРОСЫ:
Я не уверен вгде это выглядит UpgradeCode вверх. НЕ ищет его в реестрах (я уже пробовал этот взлом).Я обнаружил код UpgradeCode в таблице Win32_Property ... это правильное место, чтобы посмотреть?
Я думаю, что я должен эмулировать вызов API, с помощью которого оригинальныйMSI из (A) устанавливает свой UpgradeCode ... есть идеи, как это работает?Возможно, с помощью скрипта Powershell.Я видел, как в Интернете люди могли изменять таблицы свойств WMI с помощью вызовов gwmi (затем с помощью put) или swmi , но все мои попытки пока не увенчались успехом.
ПРИМЕЧАНИЯ:
- Я не очень разбираюсь в установщике Windows и в PowerShell ... это совсем не то, что я обычно делаю.Ответ в терминах Layman был бы очень признателен.
- Я знаю, что есть другие способы обойти это (например, выделенная виртуальная машина или выполнение «реальной» установки (A)), но я хотел бы знатькак достичь этого программно.
- Зачем мне это нужно?Это автоматический тест, который касается только установщика (B).Я не хочу, чтобы успех моего теста зависел от успешной загрузки или установки (A).