VSTO x64 运行时已安装但找不到 [英] VSTO x64 runtime installed but can't be found

查看:42
本文介绍了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 运行时已安装但找不到的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆