В сценарии развертывания у нас возникла идея разрешить администратору изменять свойства в установщике и ProductCode. Затем администратор должен вытолкнуть новую команду msi с помощью политики групповой политики. Поскольку теперь это будет MajorUpgrade, старая версия со старыми свойствами должна быть удалена, а новая с новыми свойствами должна быть установлена.
Однако обновление ProductCode не работает.Как изменить ProductCode с помощью Microsoft.Deployment.WindowsInstaller?
При выполнении
db.Execute("UPDATE Property SET Value = '{30571D61-8994-449B-9725-90760DFE0467}' WHERE Property = 'ProductCode'")
исключение выбрасывается.
[Microsoft.Deployment.WindowsInstaller.InstallerException] = {"Function failed during execution. Database: C:\..\MyInstaller.msi Table(s) Update failed."}
Что нужно сделать для обновления ProductCode?
(Возможно ли это?)
Edit:
Если таблица открывается как ReadOnly, он будет показывать ошибку.
Какой был случай здесь.
К сожалению, это была опечатка. Я использую Execute. Я нашел ошибку. У моего класса-оболочки был инвертированный if, поэтому я открыл readonly, когда захотел изменить. – leiflundgren