在 WiX 中使用防火墙扩展

编程入门 行业动态 更新时间:2024-10-28 18:33:50
本文介绍了在 WiX 中使用防火墙扩展的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

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

我看到的错误是:

File 元素包含未处理的扩展元素fire:FirewallException".请确保schemas.microsoft"中元素的扩展名已提供/wix/FirewallExtension' 命名空间.

我的 WiX 源的相关部分是这样的:

<?xml version="1.0" encoding="windows-1252"?><Wix xmlns="schemas.microsoft/wix/2006/wi"xmlns:fire="schemas.microsoft/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 XMLv3.5\bin\WixFirewallExtension.dll 已加载,但入口点未找到 DllRegisterServer.

确保 C:\Program Files (x86)\Windows Installer XMLv3.5\bin\WixFirewallExtension.dll 是一个有效的 DLL 或 OCX 文件,然后再试一次

dll 文件在我的路径中,但这可能无关紧要吗?我还需要做些什么才能让 WiX 开始使用它吗?

解决方案

经过一番挖掘,找到了答案:

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

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

I'm trying to write a WiX script that uses the firewall extension to WiX, and it doesn't seem to find the extension dll (I think).

The error I'm seeing is this:

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

and the relevant part of my WiX source is this:

<?xml version="1.0" encoding="windows-1252"?> <Wix xmlns="schemas.microsoft/wix/2006/wi" xmlns:fire="schemas.microsoft/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"/>

If i try to register the WixFirewallExtension.dll file with regsrv32 i get this error:

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

The dll file is in my path, but that might not matter? Do i need to do anything else to get WiX to start using it?

解决方案

Found the answer after some more digging:

I needed to specify the extension on the commandline of light.exe, like this:

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

更多推荐

在 WiX 中使用防火墙扩展

本文发布于:2023-07-04 08:57:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1021933.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:防火墙   WiX

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!