我在vs2010中开发了一个单词加载项。它在32位版本的Office上运行很酷,但在64位版本的Office上不运行。

For 64-bit Root\Software\Microsoft\Office\application name\Addins\add-in ID
For 32-bit Root\Software\Wow6432Node\Microsoft\Office\application name\Addins\add-in ID

注册表信息路径。我尝试将信息注册为64位。即使它在64位办公室中也不起作用。在64位办公室中,我的加载项显示在无效应用程序加载项下。我什至尝试启用它。

如何为64位Office开发和部署外接程序?

并收到以下错误..!


 at MyWord.ThisAddIn.ThisAddIn_Startup(Object sender, EventArgs e)
   at MyWord.ThisAddIn.FinishInitialization()

最佳答案



在99%的情况下,当在64位程序中引发此异常时,这仅意味着一件事。 “不正确的格式”是包含32位代码的DLL。那是行不通的,一个64位程序只能加载64位DLL。

如果您使用C#编写该外接程序,则它是一个非常简单的修复程序。在“解决方案资源管理器”窗口的“属性”,“构建”选项卡中,右键单击该项目。将“平台目标”设置为AnyCPU。如果看到它,请取消选中“首选32位”复选框(VS2012及更高版本)。对发布配置重复此操作。

异常情况的其他可能解释:

  • 没有安装64位版本的.NET Framework
  • 用C++/CLI语言编写代码,您必须构建x64版本
  • 依赖于32位非托管DLL
  • 意外加载了错误的DLL

  • 您将需要SysInternals的Process Monitor来消除此类不幸。该跟踪向您显示Office程序正在查找的DLL,以及在DLL的查找目录中。这将是一个很大的痕迹,从痕迹的底部向后工作。

    关于c# - 如何在vs2010中为64位版本的Office开发Microsoft Office Word加载项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29934189/

    10-16 09:10