2011-07-13 44 views
4

msiの中にパッケージ化されたドライバをインストールするためにdllを使用しています。 InstallFinalizeの後にカスタムアクションをスケジュールすると成功しますが、InstallFinalizeの前にInstallFilesの後に1)InstallFilesの後に2)InstallFinalの後に= Deferredを実行し、3)InstallFinalの後にexecute = deferred、impersonate = .infファイルの "ファイルが見つかりません"で失敗します。Wixカスタムアクションdllは、実行時にインストールされたファイルに依存します。

私はThis SO postthis pageを読みましたが、ドライバのインストール方法はまだ分かりません。

InstallFinalizeの後に使用すると、何らかの理由でエラーが返された場合、インストールを中止するには遅すぎるため、インストールが失敗します。

答えて

3

あなたがリンクした質問のthis answerによると、InstallFilesの後にスケジュールして延期する必要があります。

インストール中に詳細ログを有効にすると、ファイルがいつハードドライブにコピーされるのか、カスタムアクションが呼び出されたかを確認できます。

インストール完了後、インストールはすでに完了しています。

+0

私はもう一度やり直しますが、InstallFilesの後も延期されます。私は冗長なロギングを有効にしますが、それまでは動作していません。 –

+0

私は問題を理解しました。私がInstallFiles後に延期した場合、カスタムアクションでwixセッションからインストールディレクトリを読み取ることができません。このための回避策はありますか? –

+1

@Precisionはい、遅延カスタムアクションから非常に限られたプロパティセットにアクセスできます。詳細については、[遅延実行カスタムアクションのコンテキスト情報の取得](http://msdn.microsoft.com/en-us/library/aa370543(V= VS.85).aspx)を参照するか、_CustomActionData_のSOを検索してください。要するに、アクションの名前でプロパティを作成し、カスタムアクションで必要なものにその値を設定する必要があります。 –

関連する問題