【发布时间】: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