调试自定义操作

标签 debugging windows-installer custom-action

我有一个 C++ Wix 自定义操作,用于浏览本地计算机上的文件。当我在 Windows Server 2003 和 Windows 7(我的机器)上运行安装程序时,它按预期工作。但是,当我在 Windows Server 2008 上运行安装程序时,自定义操作失败。

我已成功设置 MsiBreak 环境变量,并且能够使用远程调试附加我的调试器。当我这样做时,自定义操作将按预期工作。如果我在没有附加调试器的情况下重试,自定义操作线程将崩溃,而不显示文件打开对话框(崩溃详细信息如下)。我尝试过使用通用文件对话框和通用项目对话框的自定义操作,并且两者具有相同的结果。

我的所有其他自定义操作都运行良好。有人对我应该如何进行有任何想法吗?

谢谢!

问题签名: 问题事件名称:APPPCRASH 应用程序名: MsiExec.exe 应用程序版本:5.0.7601.17514 应用程序时间戳:4ce792c4 故障模块名称:KERNELBASE.dll 故障模块版本:6.1.7601.18409 故障模块时间戳:53159a86 异常代码:80000003 异常偏移:00013226 操作系统版本:6.1.7601.2.1.0.272.7 区域设置 ID:1033 附加信息 1:0a9e 附加信息 2:0a9e372d3b4ad19135b953a78882e789 附加信息 3:0a9e 附加信息4:0a9e372d3b4ad19135b953a78882e789

最佳答案

检查项目的属性页以确定其中的线程设置。我不确定它到底在哪里,因为我没有可用的 Visual Studio,但我在网上找到了下面的图片。寻找类似的东西。显然是为所有配置设置的(调试/发布以及 x86 和 x64):

另请查看一些示例项目:http://www.codeproject.com/Articles/1747/MSI-Custom-Action-DLL

enter image description here

关于调试自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24807962/

相关文章:

php - 调试长时间运行的 PHP 脚本

c++ - 如何使用 visual studio 调试 Borland BCC55 编译的 EXE?

java - 在启动我的安装程序(java)之前检查 Windows 更新或任何安装程序实例是否正在运行

c++ - 使用 GDB 调试英特尔 C++ 编译代码

javascript - 通过记录函数调用和参数进行实时 javascript 调试

winforms - EXE 和 MSI 之间的最佳方法

vbscript - 如何从作为 msi 安装后任务运行的 VBScript 读取 64 位注册表值?

WiX 无法检查使用 CustomAction 设置的属性

visual-studio-2010 - 自定义操作不起作用 - Visual Studio 安装项目

visual-studio-2010 - 创建自定义操作以启动应用程序和退出安装程序