8

WiXのファイアウォール拡張機能を使用するWiXスクリプトを作成しようとしていますが、拡張機能dllが見つからないようです(私は思います)。

私が見ているエラーはこれです:

File要素には、未処理の拡張要素'fire:FirewallException'が含まれています。
'http://schemas.microsoft.com / wix/FirewallExtension'名前空間の要素の拡張子が提供されていることを確認してください。

そして私のWiXソースの関連部分はこれです:

<?xml version = "1.0" encoding = "windows-1252"?>
<Wix xmlns = "http://schemas.microsoft.com/wix/2006/wi"
     xmlns:fire = "http://schemas.microsoft.com/wix/FirewallExtension">
 <Component Id = "Firewall" Guid = "7278f07d-de6f-497f-9267-d5feb5216a5c" Directory = "NotUsed">
  <File KeyPath = "yes" Source = "C:\ Program Files \ Java \ jdk1.6.0_32 \ bin \ java.exe">
   <fire:FirewallException Id = "FWX1" Name = "My Program" Port = "80" Protocol = "tcp" />

WixFirewallExtension.dllファイルをregsrv32に登録しようとすると、次のエラーが発生します。

モジュールC:\ Program Files(x86)\ Windows Installer XML v3.5 \ bin \ WixFirewallExtension.dllがロードされましたが、エントリポイントDllRegisterServerが見つかりませんでした。

C:\ Program Files(x86)\ Windows Installer XML v3.5 \ bin \ WixFirewallExtension.dllが有効なDLLまたはOCXファイルであることを確認してから、再試行してください

dllファイルは私のパスにありますが、それは問題ではないかもしれませんか?WiXで使用を開始するには、他に何かする必要がありますか?

4

3 に答える 3

10

さらに掘り下げた後、答えが見つかりました:

次のように、light.exe のコマンドラインで拡張子を指定する必要がありました。

light myfile.wxs -ext WixFirewallExtension -out myfile.wixobj
于 2012-06-13T13:06:13.250 に答える
3

この問題を解決するには、WIX プロジェクト内に「 WixFirewallExtension.dll 」の参照を追加する必要があります。

于 2014-10-20T11:07:57.843 に答える
0

WIX プロジェクト内に「WixFirewallExtension.dll」を追加すると、問題が解決します。それを行うには、以下の手順に従ってください:-

  • プロジェクトをビジュアル スタジオで開きます。
  • wix プロジェクトを右クリック
  • 上記のdllへの参照を追加...
于 2015-01-23T10:15:54.353 に答える