Sim*_*mon 23 c# windows-installer wix
我试图调试我的自定义操作.我把Debugger.Break()放入自定义动作cs.当我构建自定义操作时,它会创建以下文件:
myCustomAction.dll
myCustomAction.CA.dll
myCustomAction.pdb
Run Code Online (Sandbox Code Playgroud)
在wix项目中,我在二进制标记(而不是myCustomAction.dll)中引用了myCustomAction.CA.dll.既然不存在myCustomAction.CA.pdb这是调试不起作用的原因吗?当显示消息框时,我也尝试使用消息框并附加到进程.但我收到以下消息:无法找到或打开PDB文件.
我做错了什么?我有wix 3.5版和visual studio 2010.
vor*_*olf 58
下面是文章这帮助了我.
只需将以下代码添加到自定义操作的第一行:
System.Diagnostics.Debugger.Launch();
Run Code Online (Sandbox Code Playgroud)
然后只需运行安装程序.当它开始执行您的操作时,将出现弹出窗口,其中包含启动Visual Studio以进行调试的建议.
您的参考库是正确的,它必须是*.CA.dll.使用MessageBox的方法也可以,但是你需要附加到rundll32进程.
使用DTF自定义操作,两种技术是:
1)将MessageBox放入您的自定义操作中,然后将Visual Studio附加到该过程。附加时,查找已加载本机和CLR的rundll32进程。
2)将MsiBreak环境变量设置为入口点的名称,然后重新启动计算机。当调用该自定义操作时,DTF将调用调试器。
否则,我的一般建议是让您的切入点是一个薄的单板,将可重复使用的类连接到MSI。通常,我将创建一个独立的类,该类可以提供数据并在控制台应用程序中测试所有内容,然后将该类连接到DTF。我几乎不需要调试安装程序自定义操作。
否则我一般都知道这可行。
不确定您的问题是什么,但这里有一篇文章,其中包含示例自定义操作和调试它的方法。它应该按照以下文章中的说明工作:http://www.advancedinstaller.com/user-guide/qa-c-sharp-ca.html
归档时间: |
|
查看次数: |
13353 次 |
最近记录: |