Windows 7 如何修复WixCloseApplications:错误0x8007064f:无法打开数据库上的视图?
我是新来的Wix。安装msi时,我想使用Windows 7 如何修复WixCloseApplications:错误0x8007064f:无法打开数据库上的视图?,windows-7,wix,wix3,wix3.10,Windows 7,Wix,Wix3,Wix3.10,我是新来的Wix。安装msi时,我想使用util:CloseApplication来检测notepad.exe是否正在运行。我的简单代码 <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> <util:CloseApplication CloseMessage="no" Targe
util:CloseApplication
来检测notepad.exe是否正在运行。我的简单代码
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<util:CloseApplication CloseMessage="no" Target="notepad.exe" RebootPrompt="no"/>
<InstallExecuteSequence>
<Custom Action="WixCloseApplications" After="InstallInitialize"/>
</InstallExecuteSequence>
我想我已经找到了我遇到的问题的根本原因。 如果我将完整的ClosApplication代码放在
中,则会跳过整个代码片段(只是因为缺少引用)
我之前看到的问题略有不同。我的片段只包含这个
<Fragment>
<util:CloseApplication ID="StopNotepad" CloseMessage="no" Target="notepad.exe" RebootPrompt="no"/>
</Fragment>
所需的自定义操作通过外部wxi文件包含。最后一个msi包含对自定义操作的调用,但缺少Util:CloseApplication
声明。结果,msi部署失败,我看到奇怪的日志条目说明WixCloseApplications:Error 0x8007064f:failed to open view on database
解决方案:
通过移动
忘记提及。我不想使用taskkill或WixQuietExec之类的东西。我不想杀了exe。只是想让用户知道,然后退出安装。即使使用CloseMessage=“是”。同样的结果。
<Fragment>
<util:CloseApplication ID="StopNotepad" CloseMessage="no" Target="notepad.exe" RebootPrompt="no"/>
<InstallExecuteSequence>
<Custom Action="WixCloseApplications" After="InstallInitialize"/>
</InstallExecuteSequence>
</Fragment>
<Fragment>
<util:CloseApplication ID="StopNotepad" CloseMessage="no" Target="notepad.exe" RebootPrompt="no"/>
</Fragment>