2016-12-27 21 views
1

Я пробовал все сценарии создания единой MSI для каждого пользователя и для каждой машины. Ниже мое объяснение: Согласно https://blogs.msdn.microsoft.com/windows_installer_team/2009/09/02/authoring-a-single-package-for-per-user-or-per-machine-installation-context-in-windows-7/Как создать единый пакет для установки для каждого пользователя или для каждой машины

<Property Id='ALLUSERS' Value='2' /> 
    <Property Id='MSIINSTALLPERUSER' Value='{}' /> 

Результаты в установке для каждой машины и значение MSIINSTALLPERUSER «1» приводит к установке для каждого пользователя.

Теперь я бегу пользовательское действие, которое определяет, является ли пользователь администратором или нет, и поэтому изменение значения свойства быть {} или 1.

Моя проблема заключается значение «ALLUSER» изменяется на 1 Перед регистрацией во время установки. В журнале создается шоу:

"PROPERTY CHANGE: Modifying ALLUSERS property. Its current value is '2'. Its new value: '1'." 

Но когда я запускаю непосредственно давая MSIPERUSER значение, как «1» Журнал показывает:

"PROPERTY CHANGE: Deleting ALLUSERS property. Its current value is '2'." 

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

Заранее спасибо.

ответ

0

В основном вы будете следовать правилам здесь:

https://msdn.microsoft.com/en-us/library/windows/desktop/dd408068(v=vs.85).aspx

Дело в том, что Windows, решает, как установить работы на основе привилегий пользователя, а не вы с настраиваемым действием. Вот почему значения свойств меняются. Следуйте этим правилам, и это просто работает.

+0

установщик возвращает ошибку, поскольку «у вас нет достаточных привилегий», если мы следуем этой странице. – Swetha

+0

Что говорит валидация ICE105? Что такое настройка InstallPrivileges? https://msdn.microsoft.com/en-us/library/aa367800(v=vs.85).aspx – PhilDW

+0

Я использую ссылку на WixUI_advanced dialog и не устанавливаю InstallPrivilege в Package. – Swetha