我正在为Microsoft创建我的第一个VSTO外接程序,我只是意识到CustomTaskPane有两种类型,并且让它们交叉:
Imports Core = Microsoft.Office.Core 'Version 12
Imports Tools = Microsoft.Office.Tools 'Version 9有什么区别..?
我知道他们在不同的图书馆,但我想知道还有什么不同。如果我查看对象浏览器,工具版本有一些额外的方法和功能,但在其他方面似乎是一样的。我无法删除Office引用,因为我正在使用工具中不存在的成员。
它们似乎是相同的类型,但是从基本类型来看,Tools版本没有引用Core版本。我无意中在代码中跨越了这两个版本,但它仍然有效。但是,由于这是一个VSTO外接程序,清理代码并坚持使用工具版本似乎是明智的。
有更多经验的人能对此有所了解吗..?
发布于 2020-01-01 17:36:55
正如您注意到的,Tools版本提供了扩展的功能。有大量这种类型的Tools对象,但并不是所有对象都提供扩展功能。
VSTO“包装”由Office库提供的对象,以便.NET框架能够更“本地”地使用它们,并在特殊情况下提供COM库未提供的其他有用功能。
只要您不想使用任何扩展的功能,理论上讲,无论您使用Tools还是COM Interop名称空间都无所谓。在实践中,使用原始COM版本可以更快地执行。
就我个人而言,我的首选是始终如一地使用COM Interop对象,除非我特别希望使用Tools提供的功能。
但是,对于自定义任务窗格,应该使用Tools命名空间。对此进行了优化,以使用Windows和WPF控件,并通常与.NET框架代码集成。
https://stackoverflow.com/questions/59552929
复制相似问题