1

アプリの実行に必要な依存関係をチェックするカスタム ウィンドウを追加した wix プロジェクトがあります。このウィンドウは、ライセンス契約の直後に表示されます。すべて正常に動作し、カスタム アクションによって依存関係がチェックされます。Windows インストーラーがバージョン 5 以上の場合、依存関係が満たされていない場合は、公式 Web サイトへのハイパーリンクが表示されます。

下位バージョンの場合は、[依存関係を表示] ボタンをクリックして、リンクを含む txt ファイルを表示します。以下に、メモ帳を開くカスタムアクションと、ファイルを含むプロパティがあります。

コード:

<Property Id="FXDEP" Value="$(sys.CURRENTDIR)\Resources\Files\FxDependencies.txt" />
<Property Id='NOTEPAD'>NOTEPAD.EXE</Property>
<CustomAction Id='LaunchDependencies' Property='NOTEPAD' ExeCommand='[FXDEP]' Return='asyncNoWait' />

問題は、開発マシンではパスが見つかったために機能することですが、もちろん他のマシンでは失敗します。このファイルを管理して開くには、wix にどのように指示すればよいですか?

ファイルを入れてみました

<Binary Id="FxDependencies.txt" SourceFile="$(sys.CURRENTDIR)\Resources\Files\FxDependencies.txt" />

カスタムアクションはそれを認識しません。

4

2 に答える 2

3

インストールのソースにあるファイルを開こうとしているようです。と に同じ値を使用しFxDependencies.txtますFXDEP

依存関係を含むテキスト ファイルBinaryはインストーラーのテーブルにあります。これを使用するには、一時ディレクトリに展開し、メモ帳を起動して表示する必要があります。

これを行うには、いくつかのカスタム アクションを記述する必要があります。

  1. 最初の CA はファイルを一時ディレクトリに抽出し、パスをプロパティに保存しますFXDEPTEMPPATH
  2. 2 番目の CA はFXDEPTEMPPATH、それをメモ帳に表示するために使用します。

FxDependencies.txt別のオプションは、リソースなどに含まれる小さなアプリケーション (.exe) を作成することです。この .exe を MSI の Binary テーブルに追加し、インストーラーからメモ帳の代わりに起動します。この場合、MSI は自動的に exe を一時ディレクトリに展開して起動します。アプリケーションで、リソースから情報を抽出して一時ディレクトリに新しいテキスト ファイルを作成し、メモ帳を起動して表示します。


編集: Binary テーブルからファイルを読み取る方法はいくつかあります。例については、次のリンクを参照してください。

于 2012-11-11T09:43:43.317 に答える
0

カスタム アクションでフォルダを作成することをお勧めします。そう、

  1. 前提条件を検証する
  2. Windows インストーラーのバージョンを確認する
  3. バージョンが 5 未満の場合は、カスタム アクションを呼び出してフォルダーを作成します ( $(sys.CURRENTDIR)\Resources\Files\)
  4. 次に、ボタンをクリックすると、カスタムアクションを呼び出してtxtファイルを起動できます
于 2012-11-10T14:18:17.373 に答える