我想在插件CreateRibbonExtensibilityObject()
上调用 VSTO 插件时确定 Office/Excel 的版本。我遇到了这个问题,并且遇到了:
this.Application
插件的 是,null
此时 VSTO 尚未设置。- 在
ThisAddIn_Startup(..)
之后调用CreateRibbonExtensibilityObject()
。
this.Application.Version
尚不可用,因为此时插件似乎尚未初始化。有没有办法在 VSTO 运行时调用插件时确定 Excel 的版本( 12、14 或 15CreateRibbonExtensibilityObject()
) ?
更新
发现 ItemProvider 被实例化了,我用下面的方法获取了主要的office版本。
FieldInfo temp = this.ItemProvider.GetType().GetField("_officeVersion", BindingFlags.NonPublic | BindingFlags.Instance);
uint officeVersion = (uint)temp.GetValue(this.ItemProvider);
我也接受 SliverNinja 的回答。