Как установить дополнительные свойства во время RemoveExistingProducts - PullRequest
1 голос
/ 24 февраля 2011

Я использую рекомендуемый способ обновления (используйте Upgrade и UpgradeVersion , чтобы обнаружить старую версию продукта и используйте RemoveExistingProducts после InstallInitialize

Дело в том, что при удалении существующего продукта мне нужно передать дополнительные свойства установщику для сохранения существующей базы данных. Есть способ сделать это?

Ответы [ 2 ]

4 голосов
/ 24 февраля 2011

Весь продукт, удаляемый через RemoveExistingProducts , получает одно дополнительное свойство UPGRADINGPRODUCTCODE .Это свойство соответствует ProductCode программы установки, удаляющей этот другой продукт.Если у вас было условие об удалении установщика, он может действовать соответствующим образом.Если нет, вам нужно будет сделать UpgradeVersion OnlyDetect и заблокировать его до тех пор, пока он не исчезнет, ​​вызвать его удаление вручную или аналогичные обходные пути.

1 голос
/ 24 февраля 2011

Если вы удаляете из командной строки, вы можете использовать

msiexec /x c:\Example.msi PROPERTY=VALUE

для инициализации ваших свойств.

Кроме того, вы можете сохранить свойства в реестре и использовать что-то вроде:

<Property Id="PROPNAME">
  <RegistrySearch Id="PropNameRegistry" Type="raw" Root="HKLM" Key="Software\MyProduct\MyKey\PropValue" Name="MyPropName" />
</Property>

чтобы получить их.

...