【问题标题】:Wix boostrapper settings to prevent the firewall from blocking the applicationWix boostrapper 设置以防止防火墙阻止应用程序
【发布时间】:2020-05-07 10:19:13
【问题描述】:

我在任何地方都找不到如何在 wix 引导程序中设置参数,以便防火墙和防病毒软件不会将其视为威胁。 我在其他设备上的引导程序显示它是一种威胁的信息。或者它没有任何信息就无法启动。

编辑:

我创造了这样的东西:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:fw="http://schemas.microsoft.com/wix/FirewallExtension">
<Bundle Name="Bootstrapper13" Version="1.0.0.0" Manufacturer="" UpgradeCode="86064926-b150-448f-aba9-fb0c8f4a83b5">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />       
    <Chain>
        <PackageGroupRef Id='Netfx4Full' />
  <MsiPackage Id="MainPackage" SourceFile="..\SetupProject1.msi" DisplayInternalUI="yes" Compressed="yes" Vital="yes" />
    </Chain>
</Bundle>
<Fragment>
...
<PackageGroup Id="Netfx4Full">
  ...
</PackageGroup>
</Fragment>
<Fragment>
<Directory Id="FirewallDirectory" Name="SourceDir">
  <Component Id="cmpFirewallException" Guid="87617436-AE1C-4C87-BB2D-1CA3531DBC46" KeyPath="yes">
    <fw:FirewallException Id="MyFirewallException"
            Program="..\BootstrapperSetup.exe"
            Description="Lets requests through"
            Name="InstallerWix"
            Scope="any"
            Protocol="tcp" />
  </Component>
</Directory>
</Fragment>
</Wix>

代码正在编译,但目录似乎从未启动。没有添加新规则。

【问题讨论】:

  • 如果我理解正确,您想为设置本身添加防火墙例外。不可能。你为什么要这样做?设置是否侦听 TCP 端口?这会非常不寻常和可疑吗?
  • 我想这样做是为了执行自定义操作并更改 IIS 的配置。我资助信息我应该在 WIX 中做,而不是 bootsrapper。对吗?
  • 您想要解决的问题到底是什么?
  • 当我写这篇文章时,我想知道如何设置防火墙来防止。啤酒,但我读到应该按照我上面写的那样完成
  • 我不明白您所说的“防止防火墙”是什么意思?

标签: xml wix bootstrapper


【解决方案1】:

如果您想为客户端上安装的程序添加防火墙例外,则必须为客户端上运行的程序添加规则。从您显示的代码中,我可以理解的是您已将 Bootstrapper exe 添加为异常程序。 (如有错误请指正)

以下是我最近在我的一个项目中使用的代码 sn-p,用于为 udp 数据包添加入站异常规则(即防火墙中的一个异常允许侦听来自网络的 UDP 数据包)。这实际上是在 Msi 项目中编写的(在您的情况下为 SetupProject1)

<Component Id="ChangeFirewall" Guid="YOUR-GUID"  KeyPath="yes">
      <fw:FirewallException Id="FirewallExceptionUDP"
                  Name="AppName for UDP"
                  Scope="any"
                  Protocol="udp"
                  IgnoreFailure="yes"
                  Program="[#App_Name.exe]"
                  Profile="all" />  
</Component>

对于程序,它是安装在客户端机器上的 exe 的文件 ID。

<Component Id="App_Name.exe" Guid="YOUR-GUID">
    <File Id="App_Name.exe" Name="App_Name.exe" Source="$(var.Project_TargetDir)App_Name.exe">
    </File>
</Component>

【讨论】:

  • 是的,我想为 Bootstrapper exe 添加这个。如您所见,我的组件位于片段和目录中。我还没有找到另一种将它放入 Bootstrapper 的方法。但它不起作用,我想我应该在 Bundle 中为他调用它,但我不知道该怎么做。
  • 我没有明白你所说的 Bootstrapper exe 的意思。安装应用程序后,添加或删除中显示的是您的程序名称吗?
  • 我的意思是 BootstrapperSetup.exe,它是在引导程序编译后创建的。
  • 您应该添加正在防火墙例外规则上执行的应用程序,而不是安装程序或引导程序应用程序。例如:如果您有一个名为“X.exe”的 exe,并且在运行该 X 时,您希望某些特定端口或协议允许来自网络流量,那么您应该为应用程序 X.exe 使用此防火墙异常元素。
猜你喜欢
  • 2019-04-07
  • 2014-10-18
  • 1970-01-01
  • 2010-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-13
  • 1970-01-01
相关资源
最近更新 更多