WiX Installer:如何添加防火墙例外规则?

WiX Installer: how to add Firewall exception rule?

我使用 WiX 安装程序安装 windows 服务。它添加了防火墙例外:

<File Id="file_1000_" Checksum="yes" Vital="yes" KeyPath="yes" Source="$(var.SourceFiles)\MyService.exe">
<fwrules:FirewallException Id="FirewallDomainMySvcTCP"
Name="My Service Domain TCP"
Protocol="tcp"
Port="[PORTNUMBER]"
Scope="any"
IgnoreFailure="yes"
Profile="domain" />

我的服务是一些 WCF 服务的 windows 主机。

然后我运行从其他工作站查询服务,它无法连接。 我转到控制面板->防火墙->高级->入站规则,看到规则存在,但在 "Program and services" 它有一个 "This program: " 当我标记 "All programs that meet the specified conditions" 时,我的客户端连接到该服务并且工作正常。

如何在我的安装程序中添加防火墙例外规则 "All programs that meet the specified conditions" 但不是一个 exe?

已解决: 请记住:您应该将此组件的 ComponentRef 添加到 Fragment(!!!)

元素

应该在组件下,但不在文件下。我把它们移到上一层。 像这样:(检查第一条消息:"Component" 而不是 "File")

... ...

...