如何确定是否安装了VSTO 2010 Runtime?

joe*_*and 13 installation vsto ms-office

只需使用MSDN中列出的产品代码{388E4B09-3E71-4649-8921-F44A3A2954A7}调用MsiGetProductInfo(),即可轻松检查VSTO 2005 SE是否已安装.

VSTO 2010/4.0运行时的产品代码是什么?或者有更好的方法来确定它是否已经安装?这是我们的安装过程.

此外,我试图找出相同的Windows Imaging Component.

Gav*_*vin 17

不幸的是,到目前为止,这里的答案并未完全覆盖所有基础.

产品代码

这似乎不可靠 - 我们正在寻找最低版本,而不是特定版本.虽然产品代码理论上只应更改为主要版本增量,但我机器上的VSTO版本 - 10.0.40303 - 的产品代码为{A0FE0292-D3BE-3447-80F2-72E032A54875}.这表明微软不一定保持稳定,所以我建议这不是一个好的选择.

文件版本

另一个选项可能是检查VSTO程序集本身的存在/版本,这些程序通常可能位于%PROGRAM FILES%\ Common Files\Microsoft Shared\VSTO\10.0中.但是我会说这个目录不能保证 - 实际目录似乎是在注册表中指定的,但显然这个解决方案现在并不比直接从注册表中获取版本更好...

注册处

因此,通过注册表可能是唯一的选择.

不幸的是,VSTO运行时版本可以出现在4个注册表位置中的任何一个:

  • HKLM\SOFTWARE\Microsoft\VSTO运行时安装程序\ v4(32位,从Office 2010安装中安装的VSTO)
  • HKLM\SOFTWARE\Microsoft\VSTO运行时安装程序\ v4R(32位,可从可再发行组件安装的VSTO)
  • HKLM\SOFTWARE\Wow6432Node\Microsoft\VSTO运行时安装程序\ v4(64位,从Office 2010安装中安装VSTO)
  • HKLM\SOFTWARE\Wow6432Node\Microsoft\VSTO运行时安装程序\ v4R(64位,可从可再发行组件安装的VSTO)

注意:我没有这方面的明确来源 - 我正在拼凑一些信息,例如Wouter van Vugt撰写的这篇博文这个SO答案.可能还有更多.

此外,可能存在最低版本要求,但我怀疑实际上这只会影响运行Office 2010预发行版本的用户:

用于Office运行时的Visual Studio 2010工具还附带Microsoft Office 2010.但是,在Office 2010 RTM时,Office的运行时仅支持面向.NET Framework 3.5的Office解决方案.如果您的解决方案面向.NET Framework 3.5,则可以在安装Office 2010或安装了Office Runtime可重新分发的Visual Studio 2010工具的情况下运行.如果Office解决方案以.NET Framework 4为目标,则必须重新分发Visual Studio 2010 Tools for Office运行时(引用).


小智 10

最简单的方法是检查注册表.

HKLM\Microsoft\vsto运行时设置\ v​​4\Install

HKLM\Microsoft\vsto运行时设置\ v​​4R\VSTORFeature_CLR40(这是用于4.0 Office扩展)

  • 有人可以详细说明如何检测安装的VSTOR40是x86还是x64?我安装了x86和x64运行时的所有组合,上面提到的键是唯一创建的键 - 一切都在WOW6432Node下 - 这意味着无法确定已安装运行时的'bitness'...(请注意,Office 2010有32位和64位版本,并且生成的.net进程与Office安装具有相同的位置http://social.msdn.microsoft.com/Forums/en-US/vcgeneral /线程/ 8d70d66c-fe87-4f38-b154-5804b871e153 /) (2认同)