![]() |
1
1
我们放弃了使用对Word的依赖,因为两者都安装了不同的版本,或者根本没有安装Office!而是选择 NetSpell . |
![]() |
2
0
我在这里猜测,但是如果您不能在2003安装中使用2007 PIA(主互操作程序集),那么您可以尝试通过反射访问PIA,因为我猜您想要的调用不会在这两者之间发生变化,那么这并不重要-您将使用安装的任何一个。如果您也在安装PIA,那么您可以让用户告诉您他们有哪些产品,或者稍微聪明一点,只需尝试2007年,如果失败,则尝试2003年。 就像我说的,我猜在这里,但也许值得一试。 编辑:我找到了这个 link 关于Office PIA。这是指Excel,但实际上涵盖了整个Office。我不羡慕你的任务。看起来您需要检测PIA(可能安装了PIA,也可能未安装PIA),并采取相应的措施。对我来说,这听起来像是一份反思的工作。 |
![]() |
3
0
Office的较新版本将保持大多数(如果不是全部)与较旧版本的COM对象的兼容性。这意味着,如果要针对Office2003和2007进行编程,则需要使用Office11 COM对象作为依赖项,因为它们是2003发布时最新的可用对象。只要您确认您需要的方法同时存在两个版本的COM对象,只要您使用旧的COM对象,就应该没有问题。 不幸的是,虽然我在自己的工作中使用了这个解决方案,但我没有用拼写检查来测试它。最后,请确保使用希望与之集成的Office的所有版本测试代码。 |
![]() |
4
0
我对这个问题的本能反应就是建议你走另一条路。尝试使用第三方拼写检查控件。它们相对便宜(你可以找到一些免费的控制)。至少通过这种方式,你可以控制应用中包含的控件版本,并且能够依赖它的功能。坦率地说,我很惊讶这个库还没有内置到Windows中。当然,Windows支持的所有语言都很复杂,但现在就用户期望而言,它与复制/粘贴类似。 |
![]() |
5
0
实际上,您可以打包在两个版本中工作所需的Office11和Office12互操作。这需要一些小的工作,但我设法做到了。我在注册表中做一个检查,看看要调用哪个互操作,然后用正确的版本执行拼写检查。它甚至可以检查是否安装了Word,并发出错误警告,如果没有Word就无法进行拼写检查。我们不得不使用这个词,这是因为我们必须使用的医学词典。 搜索interop或com包装器,我想你会发现两者都可以很容易地使用。 |