在WiX中使用防火墙扩展

Ale*_*äll 7 windows wix wix-extension

我正在尝试编写一个使用防火墙扩展到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"/>

如果我尝试使用regsrv32注册WixFirewallExtension.dll文件,我会收到此错误:

已加载模块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开始使用它?

Ale*_*äll 9

经过多次挖掘后找到了答案:

我需要在light.exe的命令行上指定扩展名,如下所示:

light myfile.wxs -ext WixFirewallExtension -out myfile.wixobj
Run Code Online (Sandbox Code Playgroud)