MSI /セットアッププロジェクトにカスタムアクションの失敗をデバッグする方法
質問
カスタムアクションのために、私はXmlPreprocess.exeに名前を付けるために(CodePlexのユーティリティ)を設定しています。
との引数:/ X: "[SETTINGSFILE" /i:"[TARGETDIR]web.config」/ E:[ENVIRONMENTBUTTON] [CUSTOMSETTINGS]> [TARGETDIR] XmlPreProcess.log
SETTINGSFILEは、私が追加したカスタムフォームページから来ることになって、そしてENVIRONMENTBUTTONは私のラジオボタンのいずれかの値です。
リダイレクト作業を取得する方法はありますか?これは、.logファイルを作成していません。 カスタムアクションの結果を確認するために他の方法はありますか?それが実行された場合どのように私も確認することができますか?私はそれに送られたものをPARMS見たい場合はどう?
アップデート3: - 私が試したもののより多くのシナリオについては、こちらをご覧ください: http://xmlpreprocess.codeplex.com/Thread/View.aspx?ThreadId= 79454 の
おかげで、
ニール
アップデート: 私はちょうど私のPARMSを確認するために急ごしらえのVBScriptを書きました。
dim fso, oFile
set fso = Createobject("Scripting.FileSystemObject")
set oFile = fso.CreateTextFile("VBScriptOut.txt")
if WScript.Arguments.Count < 2 then
oFile.Writeline("Number of arguments was only = " & WScript.Arguments.Count)
else
oFile.WriteLine("SETTINGSFILE=" & WScript.Arguments.Item(0))
oFile.WriteLine("ENVIRONMENTBUTTON=" & WScript.Arguments.Item(1))
end if
oFile.close
はありませんVBScriptout.txtが作成されたので、私は(そう、私の推測ではあるXmlPreprocessもどちらか実行されていない)それも走ったとは思いません。
私は、「インストール」の下のカスタムアクションとしてInstalLVerification.vbsファイルが含まれています。 私は、プロパティウィンドウで真=条件を設定しました。 "[SETTINGSFILE]" [ENVIRONMENTBUTTON]
:私はにCustomActionDataを設定しましたアップデート2: 私は今、条件が「真」ではありません実現しました。私はどちらかそれアウトまたは「Not Installed」に設定し、空白。
私はXmlPreprocessに原因不明のエラーを取得している、と私は、VBScriptを実行するために取得することはできません。私はCScript64.exeでも、それを実行してみました。
解決
のみコマンドプロンプト(時折他のツール)の出力のリダイレクトを指示するために大なり記号を使用します。 Windowsインストーラは、ちょうどこのシンボルを処理していないのWin32のCreateProcess APIを呼び出します。このように、結果をログに記録するあなたの試みは動作しません。おそらく、あなたは(引用いくつかの余分が必要な場合があります)cmd.exe /c XmlPreprocess.exe /x ... > [TARGETDIR]XmlPreprocess.log
のように見えるためにあなたのコマンドを書き換えることができます。
デバッグのために、あなたは一般的に、インストールプロセスの詳細なログを取ることによって、より多くの情報を得ることができます。これは、プロパティの、そしてそれが立ち上げたカスタムアクションとその戻りコードのリストが含まれます。私はそれも、あなたのケースでアプリケーションに渡される完全にフォーマットコマンドラインを含めるだろうと思います。
あなたがアップデート2で言うと同じように、、True
の条件は、実際に名前True
のプロパティが定義されているかどうかを調べるために意味することに注意してください。あなたは常に真です何かをしたい場合は、値1
を使用します。