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. 另外,还需要安装VSTO Runtime(运行时)。该组件也是VSTO运行所需的组件。 还有一种特殊情况,有时还需要一个组件:Office PIA兼容包。 因为VSTO开发使用没将引用到的一些DLL文件设置好,导致客户端缺少相关文件。 Office PIA也是区分版本。和Office使用的版本一直,例如使用Office2010的,需要用Office 2010PIA。 这个开发的时候可以设置一个东西,就不需要安装Office PIA。 选择引用,设置如下: 2、错误处理,防止报错被禁用VSTO插件还有一个令人恶心的地方。 若在执行代码的过程中发生错误,而且这里我们没有做任何错误处理。 这时候,除了系统报错之外,插件会自动被禁用。 下次打开Office,就看不到我们开发的插件。 我们可以告知用户如何恢复插件(在加载项,把插件启用)。 但我们最好防范于未然,把代码都加上错误处理。避免这种情况发生。 3、多个Excel.exe进程导致看不到插件在多个Excel.exe进程的情况下,会导致第一次打开的Excel.exe有加载插件。其他的Excel.exe没有加载插件。 这种情况,可能发生在插件资源回收的问题。 在上一次关闭Excel文档,插件的资源回收不了,导致Excel.exe无法退出,继续运行。 资源回收问题可以参考:VSTO关闭文档再打开,不加载插件问题 另外也可能注册表设置Excel文档打开方式为新进程打开。 这个问题多半出现在用户为了解决“向程序发送命令时出现问题”,然后自己根据网上的文章随便修改注册表导致的。 这个问题,目前没有很好解决的方法。可以引导用户设置并处理。 4、插件信任问题上面提到插件被禁用的情况。有时发现重新启用插件还是没作用。 这种情况,多半是没有被信任。如下,提示尚未信任。 这个问题可以引导用户处理。 打开菜单:文件→选项→信任中心→信任中心设置,更改如下: 不勾选“要求受信任的发布者签署应用程序加载项”。 若你的VSTO插件涉及到vba工程的开发,还需要设置“信任对VBA工程对象模型的访问”。 5、被杀毒软件隔离这个是最令人恶心和无语的情况。某卫士可能会被插件当作木马并隔离。 这个提示用户,让用户手动恢复... 基本上,可能出现问题的是这些情况。对症下药即可。 可能有些情况没有提到,欢迎补充。 |
|