【问题标题】:WIX installer for VSTO Word Template for Word 2013 not working correctly适用于 Word 2013 的 VSTO Word 模板的 WIX 安装程序无法正常工作
【发布时间】:2026-01-21 13:35:01
【问题描述】:

我为它开发了一个基于 VSTO 的 Word 模板和一个基于 WIX 的安装程序。 一般来说,安装程序工作正常,除了在带有 Office 2013(32 位)的 Windows 8.1 上。 由于某些未知原因,Office 2013(32Bit) 安装在“C:\Program Files”,并且相关的注册表项正确指向它。 在执行 Word 模板的 msi 包期间,注册表项似乎被修改,如 msiexec 的日志文件所示:

MSI (c) (18:98) [09:10:34:954]: WIN64DUALFOLDERS: 'C:\Program Files (x86)\' will substitute 17 characters in 'C:\Program Files\Microsoft Office 15\Root\Office15\WINWORD.EXE' folder path. (mask argument = 0, the folder pair's iSwapAttrib member = 0).

因此找不到 Winword.exe 并且安装程序停止。 我正在使用此 WIX 代码检查是否安装了 Word 2010 或更新版本:

<Property Id="WORDEXEVERSION"
          Secure="yes">
  <RegistrySearch Id="RegSearch_WORDEXE"
                  Root="HKLM"
                  Key="SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe"
                  Type="file">
    <FileSearch Name="WINWORD.EXE"
                MinVersion="14.0.0.0" />
  </RegistrySearch>
</Property>
<Condition Message="Word 2010 or newer is required."><![CDATA[Installed OR WORDEXEVERSION]]></Condition>

在其他装有 Win 8.1 和 Office 2013(32 位)的机器上,Office 安装到“C:\Program Files (x86)”,一切正常。 有谁知道为什么 Office 2013 可能已安装到明显错误的文件夹中,或者如何使 msiexec 按预期运行?

【问题讨论】:

    标签: ms-word wix windows-installer vsto


    【解决方案1】:

    用户可能强制安装到那里,这可能是可能的,或者实际系统可能已就地升级到 64 位操作系统,因此 Program Files 中的内容将保留在那里。

    检测的目的是什么?查看是否安装了Word?我问是因为我似乎记得模板在某个地方有自己的文件夹,而那是您安装模板的地方。

    【讨论】: