c# - 带有 Web 浏览器控制问题的 Microsoft Word 2016 VSTO 加载项
问题描述
我们正在更新旧版 MS Word 加载项,以便在 Windows 7/MS Word 2013 上运行在 Windows 10/MS Word 2016 上。
没有对解决方案进行代码更改,我们只是在 Visual Studio 2017 中打开之前在 Visual Studio 2013 中开发的解决方案,并将 .Net Framework 更新到 4.6。
加载项提供了一个包含 System.Windows.Forms.WebBrowser 控件的 Windows 窗体,该控件使用户能够从加载项中预览驻留在网络共享上的其他 MS Word 文件,而无需打开另一个 Word 文档。
简而言之:
- 加载项将文档 (C:\Users\username\AppData\Local\Temp) 的本地副本创建为 .mht 文件。
- 然后加载项在 Form/WebBrowser 控件中打开该文件。
这一切在我们的 Windows 7/Word 2013 环境中运行良好,但是当我们测试新环境时,我们发现 WebBrowser 控件不想打开 .mht 文件进行预览,而是提示我们下载文件:
“您正在下载的文件无法被默认程序打开。它已损坏或文件类型不正确。为安全起见,建议您取消下载”
我们在另一台机器上对此进行了测试并收到了相同的结果,还创建了一个简单的独立应用程序(不是加载项),我们能够成功打开 .mht 文件,所以我怀疑存在安全性或Word 2016 中的信任设置会阻止它按预期工作。
.mht 的文件关联与 Internet Explorer 相关联。
- 我还尝试使用 Fiddler 来查看它是否会捕获任何 http 流量,但是没有看到任何列出的内容。
还运行了 PROCMON 并将进程过滤为所涉及的 Word 进程的唯一 PID,其中还包括加载项,但看不到任何表明问题所在的内容。
我们还向 Microsoft 开了一张票,看看他们是否可以提供帮助,他们还将在他们的实验室机器上复制问题,尽管他们还不能告诉我们问题是什么。
我在 Stack 上看到了几个类似的问题,但还没有任何帮助。
谢谢。
解决方案
推荐阅读
- c - How can I fill a variable Char from right to left?
- java - JAX-WS 和 SWA 附件
- python - How do I use Pandas to convert an Excel file to a nested JSON?
- r - 如何在 tibble 列中找到最长的重复序列(后续问题)?
- api - 在 Postman 中使用 API 更新对话流中的实体
- c++ - 方法名称和不同类的名称之间的静默名称冲突?
- c# - 如何在 .NET Core 2 程序上使用特定于操作系统的程序?
- laravel - laravel app.js 安装后 vuetify 大文件大小
- javascript - 我正在尝试使用这个 ajax 方法,但它不起作用
- angular - Mat Table 未使用 Angular 8 动态更新