问题描述
我有使用Wix工具集和Wix文件(* wxs)创建的MSI Windows Installer文件。我的要求是我需要在运行MSI安装时打开或关闭特定的防火墙端口。
是否可以通过用于制造MSI安装程序的Wix文件(* wxs)中的规范来管理它?
解决方法
WiX中有一个名为FirewallException的扩展名。您需要在Visual Studio项目中引用它。在C:\Program Files (x86)\WiX Toolset v3.11\bin\WixFirewallExtension.dll
上找到它以进行WiX的标准安装。
关于实际元素的用法:
- 您可以find sample markup on github.com。
- Bob Arnson的博客: http://www.joyofsetup.com/2008/05/17/new-wix-feature-firewall-extension/
基本用法分步:
-
在Visual Studio项目中,添加对
C:\Program Files (x86)\WiX Toolset v3.11\bin\WixFirewallExtension.dll
的引用- 右键单击您的WiX项目
- 点击“添加=>引用...”并浏览至以上路径,然后双击文件
-
在您的
Project.wxs
源文件中添加到顶级Wix元素:xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension"
-
然后添加标记。遵循以下原则:
<Component Feature="ProductFeature"> <File Source="$(env.SystemRoot)\myexecutable.exe"> <fire:FirewallException Id="FWX1" Name="Service" Port="[PORT]" Protocol="tcp" Scope="any" /> </File> </Component>