Включение измененного диалога FilesInUse в проект WIX - PullRequest
0 голосов
/ 13 ноября 2010

У меня есть измененный диалог FilesInUse. Простое включение его в проект и изменение ссылки в пользовательском интерфейсе не помогает - я получаю ошибку «ICE20: Стандартный диалог:« FilesInUse »не найден в таблице диалога» при сборке проекта установки.

Просматривая сеть, я нашел один совет - подавить проверку ICE для ICE20. Ну, сборка проекта с такими настройками работает нормально, и MSI также работает нормально, но я не уверен, что это хорошее решение проблемы.

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

Итак, что можно сделать, чтобы правильно включить мой пользовательский файл FilesInUse в проект WIX?

Ответы [ 4 ]

5 голосов
/ 21 декабря 2013

Вы можете использовать пользовательский диалог FilesInUse следующим образом:

<Fragment>
<UI>
  <Dialog Id="FilesInUse" Width="370" Height="270" Title="Your product name">
    <Control Id="Retry" Type="PushButton" X="304" Y ="243" Width="56" Height="17" Text="Retry" Default="yes" Cancel="yes">
      <Publish Event="EndDialog" Value="Retry">1</Publish>
    </Control>
    <Control Id="Ignore" Type="PushButton" X="235" Y ="243" Width="56" Height="17" Text="Ignore">
      <Publish Event="EndDialog" Value="Ignore">1</Publish>
    </Control>
    <Control Id="Exit" Type="PushButton" X="235" Y ="243" Width="56" Height="17" Text="Exit">
      <Publish Event="EndDialog" Value="Exit">1</Publish>
    </Control>
    <Control Id ="InUseFiles" Type="ListBox" Width="300" Height="150" X="30" Y ="60" Property="FileInUseProcess" Sorted="yes" TabSkip="yes" />
  </Dialog>
</UI>
</Fragment>

Вы просто должны ссылаться на этот диалог в свой Custom InstallDialog с тегом

<DialogRef Id="FilesInUse" />

Все тегиУпомянутые являются частью Требования к диалогу ICE20

Надеюсь, это поможет.Хорошего дня.

2 голосов
/ 04 мая 2012

Хорошо, я просто потратил некоторое время, пытаясь выяснить, как решить эту проблему.

Хотя в предложенной теме есть несколько хороших ссылок, я думаю, что диалог FilesInUse более специфичен для настройки, поэтому я решил написать более конкретное решение проблемы.

Видите, проблема в том, что MSI использует диалог FilesInUse автоматически, поэтому, если вы попытаетесь каким-либо образом изменить его, вы получите ошибки, такие как FilesInUse, которых нет в диалоговой таблице, или дубликат FilesInUse диалога в таблице. если вы ссылаетесь на свой пользовательский диалог из других файлов.

Решение, которое я нашел работающим, состояло не в том, чтобы вообще использовать DialogRef для диалога FilesInUse в Wix, а в том, чтобы сделать мой собственный диалог в основном файле интерфейса пользователя (где я обычно помещал бы DialogRef в FilesInUse) и имя это FilesInUse.

Надеюсь, это поможет другим людям, имеющим ту же проблему.

0 голосов
/ 20 июля 2018

Еще одна проблема заключается в том, что пользовательское диалоговое окно FilesInUse не будет отображаться при нажатии кнопки «Удалить» в «Программы и компоненты», поскольку удаление выполняется с UILevel 3, поэтому будет отображаться только встроенный файл FilesInUse.

Комуобойти это, включив это в ваш product.wxs:

<Property Id="ARPNOREMOVE" Value="1" />

Затем, когда пользователи нажимают кнопку «Изменить» (или «Изменить») в «Программы и компоненты», в диалоговом окне «Обслуживание» будет кнопка «Удалить», которую можно использовать для удаления,и это покажет пользовательские диалоги.Такие продукты, как Visual Studio, имеют только кнопку «Изменить / Изменить».

Еще одна вещь - приложения и функции (Windows 10) отключают кнопку «Изменить», если ключ удаления не имеет настройки ModifyPath.Это должно быть установлено на

MsiExec.exe /I{<yourproductcode>}

Ваш загрузчик должен будет сделать это.Не уверен, что MSI может установить его.

0 голосов
/ 04 мая 2011

См. Связанный вопрос и ответы здесь: Диалог замены WiX

Пользователь Ян Скляренко ответил 25 марта '11:

Несколько статей, чтобы помочьВы:

Учебное пособие по WiX

Статья Нила Слайтхолма

Там вы найдете всю необходимую вам информацию для вашего дела.

Пользователь Боб Арнсон ответил 25 марта: '

См. "Изменение последовательности пользовательского интерфейса встроенного диалогового набора" в теме "Настройка встроенногоНаборы диалогов WixUI "в WiX.chm.

...