Как выбрать «Все / Только я» на основе предыдущей установленной версии? - PullRequest
1 голос
/ 05 августа 2010

Использование проекта установки Visual Studio. Я хочу изменить выбор «Все / Просто я» на тот, который был выбран пользователем при предыдущей установке.

Ответы [ 2 ]

2 голосов
/ 05 августа 2010

Наконец-то разобрался.Использовал пользовательское действие VBScript.

Dim myUpgradeCode
myUpgradeCode = "{6EFB1553-7F4F-4E26-A32B-E2F0F8E11CA9}"

Dim justMe
justMe = False

'AssignmentType 
'   Equals 0 if product is advertised or installed per-user. 
'   Equals 1 if product is advertised or installed per-machine for all users.

Set products = Session.Installer.RelatedProducts( myUpgradeCode )
For Each product In products
    astp = CLng(Session.Installer.ProductInfo(product, "AssignmentType"))
    If astp = 0 Then
        justMe = True
    End If
Next

If JustMe Then
    Session.Property("ALLUSERS") = ""
Else
    Session.Property("ALLUSERS") = "1"
End If

и выполнил его перед AppSearch.

Готово!

0 голосов
/ 05 августа 2010

Вы можете сохранить значение свойства ALLUSERS MSI в строго определенном месте в реестре во время установки. Затем вы можете запросить это значение при обновлении и действовать соответственно.

Вы также можете использовать API MSI, чтобы проверить, установлен ли ваш продукт в зависимости от компьютера или пользователя. Для этого вы должны вызвать функцию MsiEnumProductsEx и посмотреть, появляется ли ваш продукт в каком-либо контексте установки.

...