我正在尝试编写一个使用防火墙扩展到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开始使用它?
答案 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的引用......