C++ DLL 获取 MSI Property
在MSI工程中,经常会遇到这样的情况: MSI 工程需要调用DLL(C++)中的一个函数实现某些特殊或者复杂的功能,通常的做法是在Custom Action 中调用该DLL 。 那么在安装过程中,该Custom Action 被调用的时候,如何使用Visual Studio 逐行Debug DLL 的源代码呢? 答案是:使用VS2010 中的Attach to Process 就可以实现。 步骤如下: 1> VS 工程设置为Debug 模式,并设置断点。 在断点前,弹出一个 dialog ,用来标识debug的 开始位置。以 C++ DLL 获取 MSI Property 中的工程为例。 2> 以 Custom Action : dynamic link library 中的 MSI 工程为例。 编译MSI 工程,运行安装包。 3> 弹出设定的 dialog 时,在VS 工程中选择,Debug / Attach to Process… Msiexec.exe 是windows installer 服务,选择运行MessageBox 的windows installer服务,点击 ”Attach” 。 在VS 工程中,将鼠标移到断点处,可以看到工程和 msiexec.exe 已经关联了起来。 4> 继续安装,在弹出的dialog 中 点击“OK”。 再看VS 工程,程序就停在了断点处