VSTO x64 runtime installed but can#39;t be found(VSTO x64 运行时已安装但找不到)
问题描述
我创建了一个为 Windows 2010 部署插件的 WiX 安装程序.目标系统目前是 x64 Win &办公室安装.我浏览了几个微软网站,告诉我我需要一个 x64 安装程序和运行时(因为添加加载到当前单词运行的过程中).此安装程序使用以下语句检查 VSTO 运行时是否存在:
I created a WiX installer deploying an add in for Windows 2010. Target system is currently x64 Win & Office installed. I walked through several microsoft sites telling me that i'll need than an x64 installer & runtime (because the add in loads into the process of current word running). This installer checks the existence of VSTO Runtime using this statement:
<?if $(var.Platform)=x64 ?>
<?define win64Flag = "yes"?>
<?else ?>
<?define win64Flag = "no"?>
<?endif ?>
<Property Id="VSTORUNTIMEREDIST">
<RegistrySearch Id="VSTORuntimeRedist" Root="HKLM" Key="SOFTWAREMicrosoftvsto runtime setupv4RVSTORFeature_CLR40" Name="Version" Type="raw" Win64="$(var.win64Flag)"/>
</Property>
<Property Id="OFFICERUNTIME">
<RegistrySearch Id="OfficeRuntime" Root="HKLM" Key="SOFTWAREMicrosoftVSTO Runtime Setupv4" Name="Version" Type="raw" Win64="$(var.win64Flag)"/>
</Property>
<Condition Message="The Visual Studio 2010 Tools for Office Runtime is not installed. Please install the Office Runtime.">
<![CDATA[Installed OR VSTORUNTIMEREDIST>="10.0.30319" OR OFFICERUNTIME>="10.0.21022"]]>
</Condition>
实际上它适用于我的安装程序的x86版本,但是在x64模式下构建,它在任何时候都无法在注册表中找到x64条目(即使安装了运行时).我已经尝试卸载并重新安装运行时(实际上重新启动),但它不起作用.
Actually it's working for the x86 Version of my Installer, but build in x64 mode, it is unable to find the x64 entry in the registry at any time (even if the runtime is installed). I already tried to uninstall and reinstall the runtime (with reboot acutally) but it does not worked.
我还取消了安装插件的检查,但它并没有真正加载.
I also removed the check to get my Add In installed but it's not loading then acutally.
因此我的问题是,是否有任何已知的错误问题或我使用了错误的注册表项?
Therefore my question is, if there is any known bug-issue or I used the wrong registry key?
推荐答案
在 x64 系统上,WoW64 应用程序透明地重定向到注册表的 Wow6432Node
节点,因此它们实际上是在寻找像 这样的键HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftVSTO Runtime Setup
就在那里.但真正的 x64 应用程序会查看真正的 HKEY_LOCAL_MACHINESOFTWAREMicrosoftVSTO Runtime Setup
节点,而密钥自然不存在于那里.这很可能会导致您的安装程序失败.因此,对于 x64 安装程序,您需要使用 Wow6432Node
路径部分指定完整节点.
On x64 systems WoW64 apps are transparently redirected into Wow6432Node
node of the registry, so they actually look for a key like HKEY_LOCAL_MACHINESOFTWAREWow6432NodeMicrosoftVSTO Runtime Setup
there it is located. But the real x64 apps look into real HKEY_LOCAL_MACHINESOFTWAREMicrosoftVSTO Runtime Setup
node, and the key is, naturally, not present there. This, most probably causes your installer to fail. So, for a x64 installer you need to specify full node with Wow6432Node
path part.
这称为注册表反射,在详情在这里.
这篇关于VSTO x64 运行时已安装但找不到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:VSTO x64 运行时已安装但找不到
基础教程推荐
- c# Math.Sqrt 实现 2022-01-01
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 如何激活MC67中的红灯 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01