我有一个 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
关于调试自定义操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24807962/