2017-09-14 36 views
0

私はいくつかのカスタムアクションを使用してWiXインストーラを作成しています。 hereボタンのクリック(DoAction)の結果としてアクションが実行された場合、C#カスタムアクションのSession.Logが機能しません。WiXインストーラ:DoActionによって実行されるCustomActionのログメッセージ

var foo = new Record(1); 
foo.SetString(0, "hello world"); 
session.Message(InstallMessage.ActionData, foo); 

をしかしVERBOSE = 1を用いた場合であっても、私はまだログメッセージを見ることができません。 MSDNので、私はSession.Messageで試してみました、you can use the Message Methodと述べています。 インストーラはWiX Burnで作成されるため、分離されたmsiファイルはありません。

お願いします。

答えて

1

は一般的に、これは根本的なWindowsインストーラの既知の問題です:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa368322(v=vs.85).aspx

Server 2003の後にメッセージの方法が働くことと思われるが、それはないですので、正直、私は数年前、スクリプトカスタムアクションを使用して停止しました私のためのオプション。私はMsiProcessMessageを使用するC#/ DTFを使用します。

通常の回避策は、プロパティの変更が記録されるという事実を利用することです。未使用のプロパティを複数回設定すると、ログにデータが保存されます。

+0

これは私が引用したリンクです。 "私はMsiProcessMessageを使用するC#/ DTFを使用します。"お願いします? – peval27

+0

DTFは、管理されたカスタムアクションを記述できるWiXの機能です。 http://blog.deploymentengineering.com/2008/05/deployment-tools-foundation-dtf-custom.html –

+0

セッションクラスのソースはhttps://github.com/wixtoolset/wix3/blobです。 /develop/src/DTF/Libraries/WindowsInstaller/Session.cs 210行目で、MsiProcessMessage()を使用していることを確認できます。 –

関連する問題