在WiX中使用防火墙扩展

时间:2012-06-13 12:42:36

标签: windows wix wix-extension

我正在尝试编写一个使用防火墙扩展到WiX的WiX脚本,它似乎没有找到扩展名dll(我认为)。

我看到的错误是:

  

File元素包含未处理的扩展元素'fire:FirewallException'   请确保'http://schemas.microsoft.com中元素的扩展名   

我的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开始使用它?

3 个答案:

答案 0 :(得分:8)

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

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

light myfile.wxs -ext WixFirewallExtension -out myfile.wixobj

答案 1 :(得分:1)

您必须添加&#34; WixFirewallExtension.dll &#34;的引用在你的WIX项目中解决问题。

答案 2 :(得分:0)

添加&#34; WixFirewallExtension.dll&#34;您的WIX项目内部将解决此问题。 为此,请按照以下步骤操作: -

  
      
  • 在visual studio中打开项目。
  •   
  • 右键单击wix项目
  •   
  • 添加对上述dll的引用......
  •