You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Wapproj打包的桌面应用中多可执行文件配置防火墙规则?

问题:为WAP打包的全信任Windows桌面应用中的多个可执行文件配置防火墙规则

我有一个通过wapproj + appxmanifest打包的全信任Windows桌面应用,需要运行一个提供网络服务(yggstack)的独立后台可执行文件。此前仅需单个可执行文件时,AppxManifest.xml中的防火墙规则配置如下,可正常监听13456端口:

<desktop2:Extension Category="windows.firewallRules">
  <desktop2:FirewallRules Executable="App\App.exe">
    <desktop2:Rule Direction="in" IPProtocol="TCP"
                   Profile="all"
                   LocalPortMin="13456"
                   LocalPortMax="13456" />
  </desktop2:FirewallRules>
</desktop2:Extension>

现在我将yggstack.exe打包进应用后,尝试添加如下配置为其设置防火墙规则时:

<desktop2:Extension Category="windows.firewallRules">
  <desktop2:FirewallRules Executable="App\App.exe">
    <desktop2:Rule Direction="in" IPProtocol="TCP"
                   Profile="all"
                   LocalPortMin="13456"
                   LocalPortMax="13456" />
  </desktop2:FirewallRules>
  <desktop2:FirewallRules Executable="App\yggstack.exe">
    <desktop2:Rule Direction="in" IPProtocol="TCP"
                   Profile="all"
                   LocalPortMin="5090"
                   LocalPortMax="5090" />
  </desktop2:FirewallRules>
</desktop2:Extension>

出现以下错误:

AppxManifest.xml : error APPX0501: Validation error. error C00CE014: App manifest validation error: The app manifest must be valid as per schema: Line 53, Column 8, Reason: Element '{http://schemas.microsoft.com/appx/manifest/desktop/windows10/2}FirewallRules' is unexpected according to content model of parent element '{http://schemas.microsoft.com/appx/manifest/desktop/windows10/2}Extension'.

请问是否可以为另一个.exe配置防火墙规则?该如何实现?


解决方案

可以为多个可执行文件配置防火墙规则,问题出在你的配置格式违反了AppxManifest的Schema约束:单个desktop2:Extension(类别为windows.firewallRules)节点下只能包含一个desktop2:FirewallRules元素,你在同一个Extension里放了两个,所以触发验证错误。

正确的做法是为每个需要配置规则的可执行文件单独创建一个desktop2:Extension节点,每个节点对应一个exe的防火墙规则配置。修改后的AppxManifest.xml配置如下:

<!-- 为App.exe配置防火墙规则 -->
<desktop2:Extension Category="windows.firewallRules">
  <desktop2:FirewallRules Executable="App\App.exe">
    <desktop2:Rule Direction="in" IPProtocol="TCP"
                   Profile="all"
                   LocalPortMin="13456"
                   LocalPortMax="13456" />
  </desktop2:FirewallRules>
</desktop2:Extension>

<!-- 为yggstack.exe配置防火墙规则 -->
<desktop2:Extension Category="windows.firewallRules">
  <desktop2:FirewallRules Executable="App\yggstack.exe">
    <desktop2:Rule Direction="in" IPProtocol="TCP"
                   Profile="all"
                   LocalPortMin="5090"
                   LocalPortMax="5090" />
  </desktop2:FirewallRules>
</desktop2:Extension>

这样拆分后,每个Extension节点只包含对应exe的FirewallRules配置,符合Schema要求,验证就能通过,两个可执行文件的防火墙规则也会生效。

内容的提问来源于stack exchange,提问作者LOST

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 13:45:06