WiX Check File существует до установки - PullRequest
8 голосов
/ 29 июня 2011

Я видел этот вопрос много раз, но мне кажется, что ни один из ответов не работает. Я очевидно упускаю что-то элементарное, но я не могу понять, что это такое! Я пользуюсь WiX только пару дней, поэтому я все еще новичок в этом деле.

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

Мой соответствующий код:

<Property Id="FILEEXISTS">
  <DirectorySearch Id="CheckFileDir" Path="INSTALLDIR" Depth="0">
    <FileSearch Id="CheckFile" Name="main.exe" />
  </DirectorySearch>
</Property>

<Condition Message="File does exist.">NOT FILEEXISTS</Condition>

Где INSTALLDIR - это Id каталога, в котором должен находиться main.exe и который определен во вложенных тегах Directory.

Ответы [ 2 ]

5 голосов
/ 30 июня 2011

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

Если вы хотите проверить наличие файла в папке установки, я предлагаю пользовательское действие пользовательского интерфейса, выполненное с помощью управляющего события DoAction .Это событие может быть вызвано кнопкой «Далее» в диалоговом окне выбора папки.

Для этого нет предопределенных пользовательских действий, поэтому вам необходимо написать одно с пользовательским кодом.Это должен быть DLL или VBScript, который получает дескриптор установки.Вы можете найти небольшой учебник здесь: http://www.codeproject.com/KB/install/msicustomaction.aspx

1 голос
/ 30 июня 2011

Полагаю, вы пропустили квадратные скобки [] вокруг INSTALLDIR в @Path.Кроме того, @ Depth = 0 выглядит подозрительно, просто пропустите этот атрибут для обычного поиска, по умолчанию он равен 1, и это то, что вам обычно нужно для поиска файла в каталоге.

Надеюсь, это поможет,но если быть строгим, ваш вопрос не содержит реального вопроса.Трудно понять, получаете ли вы какую-либо ошибку, или условие просто не работает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...