Wix インストーラーは初めてです。プログラムにファイアウォールの例外を追加しようとしています。
私のコードは次のとおりです。
<Component Id="_VIEW.EXE" Guid="*" Transitive="yes">
<File Id="view.exe"
Name="view.exe"
KeyPath="yes"
Source="$(var.INSTALLSOURCE)\view.exe">
<fire:FirewallException Id="view_firewall_domain_tcp"
Name="View"
Protocol="tcp"
Scope="any"
IgnoreFailure="yes"
Profile="domain" />
<fire:FirewallException Id="view_firewall_domain_udp"
Name="View"
Protocol="udp"
Scope="any"
IgnoreFailure="yes"
Profile="domain" />
<fire:FirewallException Id="view_firewall_private_tcp"
Name="View"
Protocol="tcp"
Scope="any"
IgnoreFailure="yes"
Profile="private" />
<fire:FirewallException Id="view_firewall_private_udp"
Name="View"
Protocol="udp"
Scope="any"
IgnoreFailure="yes"
Profile="private" />
</File>
</Component>
私のコードでは、4 つのファイアウォール例外を追加し、各例外は「 Profile 」属性と「Protocol 」属性に対して異なる値を持ちます。私の予想される結果は、4 つの例外が作成されることです。
NAME GROUP Profile Enabled Action Override Program Local Address Remote Address Protocol Local Port Remote Port Allowed Users Allowed Computers
view Domain Yes Allow No c:\test\view.exe Any Any TCP Any Any Any Any
view Domain Yes Allow No c:\test\view.exe Any Any UDP Any Any Any Any
view Private Yes Allow No c:\test\view.exe Any Any TCP Any Any Any Any
view Private Yes Allow No c:\test\view.exe Any Any UDP Any Any Any Any
しかし、実際の結果は例外が 1 つだけ作成され、"Protocol" 属性の値は " TCP " または " UDP "ではなく "any" になります。
NAME GROUP Profile Enabled Action Override Program Local Address Remote Address Protocol Local Port Remote Port Allowed Users Allowed Computers
view Domain Yes Allow No c:\test\view.exe Any Any Any Any Any Any Any
だから、私は2つの質問があります:
- 例外が 1 つしか作成されないのはなぜですか? 例外の名前は一意である必要がありますか?
- 「Protocol」属性の値が有効にならないのはなぜですか?
ファイアウォール拡張機能に関する公式ドキュメントを参照し ます 。
すべての受信ポートとプロトコルへのアクセスを許可するファイルの識別子。ファイルを使用する場合、プログラムも使用できません。File と Port または Protocol を同じ FirewallException 要素で使用すると、Windows XP および Windows Server 2003 への例外のインストールに失敗します。IgnoreFailure="yes" を使用すると、結果として生じる失敗を無視できますが、例外は追加されません.
プログラムにファイアウォールルールを設定すると、「プロトコル」を設定しても、「プロトコル」と「ポート」の属性が自動的に「すべて」になるということですか?