0

結果の MSI (WiX プロジェクトで作成されたもの) に dll/exe を含める必要がありますが、インストール中にそれらを展開したくありません:一部の CustomAction でのみ使用したいのですが、既存の exe/dll を含めることが目的です。インストール中に wxs コードから呼び出します (CustomAction dll からではありません)。
インストール中に展開されないファイルを含めることはできますか? つまり、結果の MSI 内にのみパックし、%temp% フォルダー内に解凍されている間に何らかのタスクを呼び出すのですか?
また、誰かが Product.wxs XML コード ユニットを使用して dll/exe を含める方法のサンプル コードを示すことができれば幸いです。
ありがとう。

4

2 に答える 2

2

はい、Binary要素を使用してそれらを含めます。

<Binary Id='MyCustomActionBinary'
        SourceFile='$(var.CustomActionProject.TargetPath)' />

これにより、BinaryKey 属性を使用して Binary を参照できるCustomActionでそれらを使用できるようになります。

<CustomAction Id='MyCustomAction'
              BinaryKey='MyCustomActionBinary'
              DllEntry='MyCustomFunction'
              Execute='deferred' />
于 2013-04-08T15:44:45.210 に答える
1

C#/DTF を使用してカスタム アクションを記述している場合は、DLL を参照として追加するだけです。他の種類のファイルについては、コンテンツとしてプロジェクトに追加します。CopyAlways とビルドは、これらのファイルを自己抽出カスタム アクションに自動的に含めます。これらは、CA の実行時に現在のディレクトリ (一時ディレクトリ) で使用でき、CA の終了時に自動的にクリーンアップされます。

于 2013-04-08T15:37:59.750 に答える