NoteFirst的Word插件(WordAddIn)安装过程中遇到的问题和解决方案

1. 综述

本文的主要意图是阐述在NoteFirst的Word插件或称Word AddIn的安装过程中遇到的问题和解决方案。

主要问题描述:在Microsoft Office自定义项安装程序的安装期间出错,遇到以下问题:System.IO.FileNotFoundException: 系统找不到指定的文件。(异常来自HRESULT:0x80070002)

该AddIn属于Word的COM加载项。

在我对该问题进行百度的过程中发现,并没有针对NoteFirst的解决方案,更多的是在VS的使用过程中出现的问题,这也是写下这篇文章的主要诱因。更多地,我参考其它人遇到的同类问题解决了自己的,因此为同样异常代码的相关问题提供一个参考。

2. 背景

环境:

  • Win10
  • Microsoft .NET Framework 4
  • Microsoft Office Pro 2016 - Word
  • NoteFirst 普及版 5.00.01.20180609

NoteFirst:一款文献管理软件。1

NoteFirst 文献管理软件是国内首款网络版的文献资料管理、论文写作及科研协作工具,主要功能包括文献收集管理、论文写作帮助、科研协作交流以及学术信息搜索。NoteFirst 基于互联网, 可以多台电脑数据可以自动同步,并且全面支持国家标准,并满足SCI、EI 等收录中文论文要求双语参考文献的格式要求。

我:非IT相关领域学生。并不是第一次安装/使用Office插件,可能是由于之前用的诸如Acrobat等软件和AudTool等专用插件的成熟度比较高的原因,安装过程都很顺利。

3. 遇到的问题

在NoteFirst的安装过程中,安装程序运行到一半遇到问题,此时检查发现软件的主体部分已经安装完毕并且功能齐全,可以正常使用。故猜测其Setup的内在步骤分成两部分:软件主体+Word插件。(因为是一个文献管理软件,所以只涉及到Word)问题就出现在WordAddIn即Word插件的安装上。
NoteFirst的Word插件(WordAddIn)安装过程中遇到的问题和解决方案_第1张图片
错误代码:HRESULT:0x80070002
主要问题描述:System.IO.FileNotFoundException: 系统找不到指定的文件。

打开Word时,会自动运行该COM加载项的安装程序,出现报错。查看加载项列表发现,该加载项虽然出现在了运行时加载的列表中,但是状态是未加载并存在问题。

由于该Office插件安装的报错指向了NoteFirst的安装目录,因此我找到了NoteFirstAddIn2016.vsto这个文件,应该是一个Office插件的安装程序。运行报错指向了C盘Common Files的一处地址,但在C盘中并没有NoteFirst建立的目录。

4. 解决方案

(1) 失败尝试

  1. 将Framework重新安装或在Window功能中重新启动2
  2. 修改Internet选项中Java部分的安全等级
  3. 路径格式问题

(2) 有效尝试1

有文章3认为,Office加载项无法成功安装的原因在于注册表,于是需要修改注册表,在如下两个位置各添加一项:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins\插件名称]“Description”=“Word Financal Product For test”“LoadBehavior”=dword:00000003"Manifest"=“file:///D:\test\test.vsto|vstolocal”“FriendlyName”=“Word Financal Product For test”

[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Office\Word\Addins\插件名称]“Description”=“Word Financal Product For test”“LoadBehavior”=dword:00000003"Manifest"=“file:///D:\test\test.vsto|vteststolocal”“FriendlyName”=“Word Financal Product For test”

当然,注册表项里的位置需根据实际情况进行调整,并且为了注册表 可能存在(我不明白) 的一致性,我还根据隔壁的 OneNote.WordAddinTakeNotesService 添加了 “CommandLineSafe”=DWORD:00000003

实际上,NoteFirst在注册表中的位置是
\HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\NoteFirstAddIn2016
它Manifest的数值数据有一个 非常奇怪(我看不懂)的格式file:///D:/NoteFirst/KMS/NoteFirstAddIn2016.vsto

改好注册表之后,最神奇的事情发生了:

我想起来Office之前出了点小问题处在没有激活的状态,于是激活了再打开测试Word文档,发现加载项的安装程序顺利运行并且在菜单栏/工具栏出现了NoteFirst的插件,跟Acrobat成为了邻居,并且可以正常使用。

随后,出于一个理想化(强迫症)的原因,我删掉了上述在注册表中新加的两项,再次打开Word发现插件从工具栏消失了。(实际上在真正解决了此问题后我又查看了注册表的这两个位置,并没有建立NoteFirst相关的项。不过)此时,再次运行NoteFirstAddIn2016.vsto报错为NoteFirst的Word插件(WordAddIn)安装过程中遇到的问题和解决方案_第2张图片
[T^T Orz]

(3) 有效尝试2

有文章4认为解决该问题的关键在该文件处:C:\Program Files\Common Files\microsoft shared\VSTO\10.0\ VSTOInstaller.exe.config
其内容为:




    
      
      
      
      
    
  


[报错位置是http的位置(估计到了https处也会出问题)]

并且提供了解决方案:

–删了这个文件就好了

就好了。

(4) 未采用方法

有文章56表示此异常是由于没有正确安装 NuGet Package Manager引起的,但是由于在我记忆中并没有见过NuGet,所以并没有尝试此方法。

如果是在VS的使用过程中遇到的该问题,此方法值得一试。

5. 总结

  1. NoteFirst这个软件居然将近一年没有发布新版本了,前几个版本的更新间隔也好长;
  2. 本文解决的问题为NoteFirst的Word COM加载项安装问题;
  3. 问题是 System.IO.FileNotFoundException: 系统找不到指定的文件。(异常来自HRESULT:0x80070002);
  4. 解决方法是把 VSTOInstaller.exe.config删掉,即可顺利运行NoteFirstAddIn2016.vsto;
  5. 记得在安装完成后把删掉的VSTOInstaller.exe.config放回原位置,并不影响使用;
  6. Office一定要激活。拜拜

  1. 1 ↩︎

  2. 2 ↩︎

  3. 3 ↩︎

  4. 4 ↩︎

  5. 5 ↩︎

  6. 6 ↩︎

你可能感兴趣的:(NoteFirst的Word插件(WordAddIn)安装过程中遇到的问题和解决方案)