Использование расширения брандмауэра в WiX

Я пытаюсь написать сценарий WiX, который использует расширение брандмауэра для WiX, и, похоже, он не находит dll расширения (я думаю).

Ошибка, которую я вижу, такова:

Элемент File содержит необработанный элемент расширения fire: FirewallException.
Убедитесь, что расширение для элементов в пространстве имен http://schemas.microsoft.com / wix / FirewallExtension предоставлено.

и соответствующая часть моего источника WiX такова:

<?xml version="1.0" encoding="windows-1252"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension">
 <Component Id="Firewall" Guid="7278f07d-de6f-497f-9267-d5feb5216a5c" Directory="NotUsed">
  <File KeyPath="yes" Source="C:\Program Files\Java\jdk1.6.0_32\bin\java.exe">
   <fire:FirewallException Id="FWX1" Name="My Program" Port="80" Protocol="tcp"/>

Если я попытаюсь зарегистрировать файл WixFirewallExtension.dll с помощью regsrv32, я получаю эту ошибку:

Модуль C: \ Program Files (x86) \ Windows Installer XML v3.5 \ bin \ WixFirewallExtension.dll был загружен, но точка входа DllRegisterServer не найдена.

Убедитесь, что C: \ Program Files (x86) \ Windows Installer XML v3.5 \ bin \ WixFirewallExtension.dll является допустимым файлом DLL или OCX, а затем повторите попытку.

Файл dll находится на моем пути, но это может не иметь значения? Нужно ли мне делать что-нибудь еще, чтобы WiX начал его использовать?


person Alexander Kjäll    schedule 13.06.2012    source источник
comment
Почему вы пытались зарегистрировать WixFirewallExtension.dll?   -  person harper    schedule 20.10.2014


Ответы (3)


Нашел ответ после еще нескольких копаний:

Мне нужно было указать расширение в командной строке light.exe, например:

light myfile.wxs -ext WixFirewallExtension -out myfile.wixobj
person Alexander Kjäll    schedule 13.06.2012
comment
Вы знаете, как это сделать с помощью плагина Visual Studio? Я нигде не могу найти .dll - person aj.toulan; 02.10.2019
comment
Я нашел его в Program Files (x86) / Wix Toolset / bin - person aj.toulan; 02.10.2019

Вы должны добавить ссылку на «WixFirewallExtension.dll» в свой проект WIX, чтобы решить эту проблему.

person aa aa    schedule 20.10.2014

Добавление «WixFirewallExtension.dll» в ваш проект WIX решит проблему. Для этого выполните следующие шаги: -

  • Откройте проект в Visual Studio.
  • Щелкните правой кнопкой мыши проект wix
  • Добавьте ссылку на указанную выше dll ...
person Henry Disoza    schedule 23.01.2015