0
我正在更改我們的安裝程序以支持同時安裝多個版本的軟件。如何識別和升級當前的安裝?
這導致安裝了幾個早期版本的產品,我需要讓用戶選擇哪些當前版本應該升級。
目前我使用了一個名爲OLDERFOUND屬性來檢測,如果他們是舊版本在所有:
<Upgrade Id='$(var.UpgradeCode)'>
<UpgradeVersion
OnlyDetect='yes'
Property='OLDERFOUND'
Minimum='0.0.0'
Maximum='$(var.Version)'
IncludeMaximum='no'
IncludeMinimum='yes' />
</Upgrade>
在OLDERFOUND蒙山組合框將顯示一個對話框。我使用動態交流#CustomAction項目添加到組合框:
[CustomAction]
public static ActionResult FillVersionList(Session xiSession)
{
View view = xiSession.Database.OpenView("SELECT * FROM ComboBox");
view.Execute();
Record record = xiSession.Database.CreateRecord(4);
//CURRENTVERSIONS is the name of the combobox property
record.SetString(1, "CURRENTVERSIONS");
record.SetInteger(2, 1);
record.SetString(3, "foo");
record.SetString(4, "foo");
view.Modify(ViewModifyMode.InsertTemporary, record);
record = xiSession.Database.CreateRecord(4);
record.SetString(1, "CURRENTIVARVERSIONS");
record.SetInteger(2, 2);
record.SetString(3, "bar");
record.SetString(4, "bar");
view.Modify(ViewModifyMode.InsertTemporary, record);
view.Close();
return ActionResult.Success;
}
我想不出什麼如何做的是
- 與填充組合框所有以前安裝的版本
- 和然後更新用戶選擇的一個
我試圖找出一種方法來從註冊表中讀取所有版本(我有一個每個版本安裝的註冊表鍵),但沒有提出任何東西。我不知道如何指定更新哪個早期版本。
想我得退後一步,並瞭解更多有關Windows Installer ... – Mohrn 2014-08-28 08:33:46