我想在插件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 的回答。