WIX MSI - приоритет переопределения свойства - PullRequest
3 голосов
/ 25 октября 2011

Любая помощь будет высоко ценится.

Я пишу этот установщик WIX, чтобы MSI установил веб-приложение на наших серверах.

В моем приложении у меня есть НЕДВИЖИМОСТЬ - "WEBDIR". Я использую это свойство позже в своем коде в качестве идентификатора каталога.

Я установил это свойство тремя способами.

  1. (Метод 'A') Как свойство, переданное при вызове msiexec в тихом режиме. [Установка здесь как C: \ Path1] Примерно так:

    msiexec /quiet /i My.msi WEBDIR="C:\Path1" /l*v InstallationLog.log
    
  2. (Метод 'B') Из поиска IniFile. У меня есть файл ini в C: \ Windows с именем MySetup.ini, где ключ WebsitesDir разрешает значение C: \ Path2. [Установка здесь как C: \ Path2]:

    <Property Id="WEBDIR">
        <IniFileSearch Id="WebsitesDirIni" Name="MySetup.ini" Section="InstallLocations" Key="WebsitesDir" Type="raw"/>
    </Property>
    
  3. (Метод 'C') Использование структуры каталогов по умолчанию. [Установка здесь как C: \ Path3] следующим образом:

    <Directory Id="TARGETDIR" Name="SourceDir">
        <Directory Id="WEBDIR" Name="Path3">
        </Directory>
    </Directory>
    

В настоящее время он работает следующим образом: - Когда все методы «A», «B» и «C» устанавливают значение свойства, B имеет приоритет. - Когда только свойства «A» и «C» устанавливают значение свойства, «C» имеет приоритет.

То, что я хочу, - это установить порядок приоритета на «А». Если! 'A', то 'B', иначе 'C'.

Возможно ли это?

1 Ответ

0 голосов
/ 25 октября 2011

Нет, это невозможно.Если вы хотите контролировать порядок, лучшим подходом будет немедленное пользовательское действие .Так как ему нужно установить свойство установщика, ваше пользовательское действие должно получить дескриптор установки (рекомендуется библиотека win32 DLL).

При нормальных обстоятельствах установщик будет использовать этот порядок:

  1. Значение командной строки инициализирует свойство
  2. Строка каталога задает начальный путь к папке, переопределяя значение командной строки.Позже этот путь можно изменить с помощью действий калькуляции ( CostFinalize ).
  3. Поиск переопределяет исходный путь к папке, но может быть переопределен действиями калькуляции.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...