2012-06-13 74 views
4

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

我看到的错误是这样的:

The File element contains an unhandled extension element 'fire:FirewallException'.
Please ensure that the extension for elements in the 'http://schemas.microsoft.com /wix/FirewallExtension' namespace has been provided.

和我的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文件我得到这个错误:

The module C:\Program Files (x86)\Windows Installer XML v3.5\bin\WixFirewallExtension.dll was loaded but the entry-point DllRegisterServer was not found.

Make sure that C:\Program Files (x86)\Windows Installer XML v3.5\bin\WixFirewallExtension.dll is a valid DLL or OCX file and then try again

该dll文件是在我的路径,但这可能无关紧要?我需要做其他事情才能让WiX开始使用它吗?

+0

为什么你会尝试注册WixFirewallExtension.dll? – harper

回答

7

找到了答案后,一些更多的挖掘:

我需要来指定light.exe的命令行的扩展,这样的:

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

您必须添加“WixFirewallExtension的参考。 dll“在您的WIX项目中解决问题。

0

在WIX项目中添加“WixFirewallExtension.dll”可以解决问题。 按照以下步骤操作: -

  • Open the project in visual studio.
  • Right click on wix project
  • Add reference to the above dll...