1

カスタム アクションの場合、Name to XmlPreprocess.exe (CodePlex ユーティリティ) に設定しています。

および引数: /x:"[SETTINGSFILE]" /i:"[TARGETDIR]web.config" /e:[ENVIRONMENTBUTTON] [CUSTOMSETTINGS] >[TARGETDIR]XmlPreProcess.log

SETTINGSFILE は、追加したカスタム フォーム ページからのものであると想定されており、ENVIRONMENTBUTTON はラジオ ボタンの 1 つの値です。

リダイレクトを機能させる方法はありますか? .log ファイルを作成していません。カスタム アクションの結果を確認する他の方法はありますか? 実行されたかどうかを確認するにはどうすればよいですか? どのパラメーターが送信されたかを確認したい場合はどうすればよいですか?

更新 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 ファイルを含めました。プロパティ ウィンドウで condition= True を設定しました。CustomActionData を次のように設定しました: "[SETTINGSFILE]" [ENVIRONMENTBUTTON]

更新 2: 条件が「True」であってはならないことに気付きました。空白にするか、「未インストール」に設定します。

XmlPreprocess で原因不明のエラーが発生し、VBScript を実行できません。CScript64.exeでも実行してみました。

4

1 に答える 1

1

コマンド プロンプト (および場合によってはその他のツール) のみが、大なり記号を使用して出力のリダイレクトを示します。Windows インストーラーは、このシンボルを処理しない Win32 CreateProcess API を呼び出すだけです。したがって、結果を記録しようとしてもうまくいきません。おそらく、コマンドを次のように書き直すことができますcmd.exe /c XmlPreprocess.exe /x ... > [TARGETDIR]XmlPreprocess.log(余分な引用符が必要になる場合があります)。

デバッグの目的で、通常、インストール プロセスの詳細なログを取得することで、より多くの情報を取得できます。これには、プロパティのリストと、起動したカスタム アクションとそのリターン コードが含まれます。あなたの場合、アプリケーションに渡される完全にフォーマットされたコマンドラインも含まれると思います。

Update 2 で言ったように、条件はTrue実際には名前のプロパティTrueが定義されているかどうかを調べることを意味することに注意してください。常に true が必要な場合は、 value を使用します1

于 2010-01-05T14:49:25.063 に答える