VSTO插件无法运行和解决方法

  • 发布时间:2017年3月30日 10:12
  • 作者:杨仕航
  • 分类标签: VSTO
  • 阅读(20788)
  • 评论(0)

VSTO开发的插件十分娇气。动不动就被禁用或不能运行。

1)没有.NET框架?拜拜;

2)没有VSTO运行时?拜拜;

3)没有允许执行插件?拜拜;

4)代码导致运行出错了?拜拜。

还可能出现各种各样莫名奇妙的情况,导致VSTO插件直接不运行。


现罗列一些情况,提供排查问题的依据。

你也可看如下链接,里面的文章都是我之前开发一个Excel插件写的帮助文档。

安装了插件,但没有相关菜单?

插件加载出错解决方法


1、检查必备组件

VSTO是基于.NET开发的插件,所以需要.NET框架。而且该框架的版本最好和VSTO插件使用的框架一致。

例如,我在.NET框架4.0开发的VSTO插件。那么安装到其他电脑上使用,其他电脑也需要安装了.NET框架4.0。

若.NET框架版本不对,会提示错误:the manifest may not be valid or the file could not be opened.

20170330/20170330100611721.jpg

另外,还需要安装VSTO Runtime(运行时)。该组件也是VSTO运行所需的组件。


还有一种特殊情况,有时还需要一个组件:Office PIA兼容包。

因为VSTO开发使用没将引用到的一些DLL文件设置好,导致客户端缺少相关文件。

Office PIA也是区分版本。和Office使用的版本一直,例如使用Office2010的,需要用Office 2010PIA。

这个开发的时候可以设置一个东西,就不需要安装Office PIA。

选择引用,设置如下:

20170330/20170330093408878.gif


2、错误处理,防止报错被禁用

VSTO插件还有一个令人恶心的地方。

若在执行代码的过程中发生错误,而且这里我们没有做任何错误处理。

这时候,除了系统报错之外,插件会自动被禁用

下次打开Office,就看不到我们开发的插件。

我们可以告知用户如何恢复插件(在加载项,把插件启用)。

但我们最好防范于未然,把代码都加上错误处理。避免这种情况发生。


3、多个Excel.exe进程导致看不到插件

在多个Excel.exe进程的情况下,会导致第一次打开的Excel.exe有加载插件。其他的Excel.exe没有加载插件。

这种情况,可能发生在插件资源回收的问题。

在上一次关闭Excel文档,插件的资源回收不了,导致Excel.exe无法退出,继续运行。

资源回收问题可以参考:VSTO关闭文档再打开,不加载插件问题


另外也可能注册表设置Excel文档打开方式为新进程打开。

这个问题多半出现在用户为了解决“向程序发送命令时出现问题”,然后自己根据网上的文章随便修改注册表导致的。

这个问题,目前没有很好解决的方法。可以引导用户设置并处理。


4、插件信任问题

上面提到插件被禁用的情况。有时发现重新启用插件还是没作用。

这种情况,多半是没有被信任。如下,提示尚未信任。

20170330/20170330100034347.jpg

这个问题可以引导用户处理。

打开菜单:文件→选项→信任中心→信任中心设置,更改如下:

20170330/20170330100209770.png

不勾选“要求受信任的发布者签署应用程序加载项”。


若你的VSTO插件涉及到vba工程的开发,还需要设置“信任对VBA工程对象模型的访问”。

20170330/20170330100428199.png


5、被杀毒软件隔离

这个是最令人恶心和无语的情况。某卫士可能会被插件当作木马并隔离。

这个提示用户,让用户手动恢复...


基本上,可能出现问题的是这些情况。对症下药即可。

可能有些情况没有提到,欢迎补充。

上一篇:Python爬虫入门 (看这篇就够了)

下一篇:机器学习10:逻辑回归优化

相关专题: VSTO的那些坑   

评论列表

智慧如你,不想发表一下意见吗?

新的评论

清空