如何调试执行sql的自定义c#动作

时间:2013-06-25 07:43:13

标签: installshield

我正在运行自定义操作,假设在提供的dll中执行某些功能。 这个函数连接到sql db并用return做一些select,但我看不到返回值。 我如何在DLL中调试此函数,或检查它是否真的执行。

2 个答案:

答案 0 :(得分:1)

我使用的是C ++自定义动作DLL,因此我不完全确定C#自定义动作DLL的不同之处。但是,我通常使用Ondrej提到的方法:记录到MSI日志文件和/或暂停自定义操作执行的消息框,以便我可以通过Visual Studio附加到进程。

你熟悉这是怎么做的吗?

答案 1 :(得分:0)

InstallShield具有本机SQL脚本处理功能,可满足您的大多数需求。这将自动为您提供MSI日志文件中的大量日志记录。但是返回结果集是一件不做的事情。

最好的办法是使用Windows Installer XML(WiX)部署工具基础(DTF)编写托管C#自定义操作。这会构建自定义操作,这些操作对Windows Installer显示为C ++自定义操作,并且与InstallShield完全兼容。

在DTF自定义操作中,您可以使用session.Log()在Windows Installer日志文件中记录有用的调试信息。您还可以将调试器附加到自定义操作,并根据需要逐步执行。有关更多信息,请参阅以下内容:

Deployment Tools Foundation (DTF) Managed Custom Actions