我的问题与标题略有不同,
我正在覆盖安装程序类方法,我编写了自定义代码,在安装最新版本之前卸载了以前版本的应用程序。所以这次卸载是MSI的一部分。
所以我希望MSI首先卸载现有的安装,然后开始安装。我在OnBeforeInstall()
方法中有这个代码。
protected override void OnBeforeInstall(System.Collections.IDictionary savedState)
{
//Logic to uninstall pervious versions using product code
base.OnBeforeInstall(savedState);
}
但我注意到甚至在进入这个卸载点之前,安装MSI会提取所有文件并重写现有的安装文件。那么如果我想在执行MSI之前执行卸载,我应该在哪里写我的逻辑呢?