WIXベースのインストーラに機能を追加しようとしています。 WIXを使ったのは初めてのことなので、それは全く新しいものです。WIXツールセットを使用してファイルをダウンロードしてコピーする
私がしようとしているのは、msiexec
を使用するときにユーザーが認証トークンのコマンドライン引数を渡すことができるようにすることです。
インストーラはauthトークンを使用してAPI呼び出しを行います。 authが失敗すると、インストーラは終了します。それ以外の場合、インストーラはAPIを使用してファイルをダウンロードし、インストールディレクトリ(おそらくProgram Files
の下にある)にコピーします。
私はWIXのコマンドライン引数をプロパティとして読み込み、C#でカスタムアクションを作成してファイルの認証/ダウンロードを処理しました。
私が苦労しているのは、ファイルをインストール場所にコピーするためにCustomActionが取得されていることです。その場所に書き込む権限がないためです。
execute="deffered"
と"impersonate=no
を設定して昇格させた特権で実行することはできますが、session
オブジェクトからプロパティを読み取ることはできません。
可能性の高い別のオプションは、CustomAction(昇格された権限なしで動作する)の一時的な場所にファイルを保存し、新しいプロパティを設定することです。次にSourceProperty
のCopyFile
コンポーネントを使用して、そのファイルをターゲットの場所にコピーできます。
しかし、CustomActionが実行されるまで、プロパティが設定されないため、CopyFile
コンポーネントの前にCustomActionを実行する方法を理解することはできません。 CustomAction before
をインストールして実行するだけで簡単ですか、それともそれ以上ですか?
"MoveFiles"(http://wixtoolset.org/documentation/manual/v3/xsd/wix/copyfile.htmlにはDuplicateFilesとMoveFilesの表があり、MoveFilesを使用すると仮定しています)ファイル要素のIDを参照していないCopyFileを定義するときにテーブル)が、私はあなたのカスタム化を実行し、ファイルをインストールディレクトリにダウンロードできるようにする答えを追加しています。 –