WiX3.0以降でファイアウォールの例外登録ができることがわかったので、備忘録として設定方法について記録しておきます。
まず、ファイアウォールの機能はExtensionとして提供されているので、ソース(*.wxs)とコンパイル(Candle)、リンク(Light)の3箇所に手を加える必要があります。
■ソース
FirewallExtensionを使用するためには、まずはじめにWix要素に「FirewallExtension」を名前空間「fire」としてインクルードするための一文を追加する必要があります。次に、ファイアウォールを設定したいFile要素もしくはComponent要素に、FirewallException要素を追加します。下の例はアプリケーションの実行ファイル(myapp.exe)に対して通信を許可する例外を追加するものです。<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension">
このほかにも特定ポートなどの通信を許可する設定などもできるようです。
<File Id="myapp.exe" Name="myapp.exe" Source="D:\MyApp\myapp.exe" KeyPath="yes">※ファイアウォールの要素名には接頭辞「fire:」をつける必要があります。
<fire:FirewallException Id="myapp.exe" Name="MyAppName" Scope="any"/>
</File>
■コンパイル&リンク
インストーラのコンパイルとリンクの際には、引数に"-ext"を使って「WiXFirewallExtension」ライブラリを追加する必要があります。以上です。candle.exe myapp.wxs -out myapp.wixobj -ext WixFirewallExtension
light.exe myapp.wixobj -ext WixUIExtension -ext WixFirewallExtension -cultures:ja-jp -out myapp.msi -pdbout myapp.wixpdb myapp.wixobj
赤で書いたところが追加が必要なところです。
0 件のコメント :
コメントを投稿