我现在正在使用wix并开发了一个安装程序。此安装程序调用C++自定义操作DLL。 DLL和安装程序都正在构建,但是当我去安装它时,安装程序以“安装程序向导由于错误提早结束”而结束“任何人都知道可能的答案?从C++自定义动作DLL调用函数的问题WIX
这是C++ DLL函数:
extern "C" UINT __stdcall StopOrcService(MSIHANDLE hInstall)
然后我继续在其下与用于功能的代码。然后我使用def文件导出它。
<CustomAction Id='StopOrcService' BinaryKey='StopOrcService' DllEntry='StopOrcService' Execute='immediate' Return='check'/>
<InstallExecuteSequence>
<Custom Action='StopOrcService' After='ProcessComponents' />
</InstallExecuteSequence>
<Binary Id='StopOrcService' SourceFile='SetupDLL.dll' />
这是我的wix代码。
首先我想知道的是为什么要自定义操作来停止服务。你的出口报表可能会搞砸。看看Depends中的DLL,看看你是否看到了导出的函数。 – 2012-07-26 16:08:22
另一件事是您的CA被安排执行。在需要提升的机器上(例如启用UAC),这经常会失败,因为执行安装程序的人可能无权执行所需的操作。 – 2012-07-26 16:09:36
是的,它必须是,因为我需要找到注册表值,以我的应用程序将要安装的位置。我运行了一个日志文件,它说错误0x80070715:无法获取自定义操作DLL的文件版本,尽管我已经向我的DLL添加了一个版本号 – 2012-07-26 16:19:07