Windows 7 如何修复WixCloseApplications:错误0x8007064f:无法打开数据库上的视图?

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

我是新来的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" 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>