我已经在vs2010中开发了一个单词的插件。它在32位版本的办公室工作很酷,但它不适用于64位版本的办公室。很多搜索并发现
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位的办公室中,我的插件显示在 InActive Application Add-Ins 下。我甚至尝试启用它。
如何为64位办公室开发和部署插件..?
我收到以下错误.. !!
无法加载文件或程序集&x; xxxxx,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其中一个依赖项。试图加载格式不正确的程序。
**************例外文字************** System.BadImageFormatException:无法加载文件或程序集' xxxxx,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'或其中一个依赖项。尝试加载格式不正确的程序。 文件名:' xxxxx,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'
at MyWord.ThisAddIn.ThisAddIn_Startup(Object sender, EventArgs e)
at MyWord.ThisAddIn.FinishInitialization()
在 Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.ExecutePhase(ExecutionPhases executionPhases)at Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.ExecuteCustomization.Microsoft.VisualStudio.Tools.Office.Runtime.Interop.IExecuteCustomization2.ExecuteEntryPoints() 警告:装配绑定日志记录已关闭。要启用程序集绑定 失败日志记录,设置注册表值 [HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)为1.注意:有 与程序集绑定失败相关的一些性能损失 日志记录。要关闭此功能,请删除注册表值 [HKLM \ SOFTWARE \微软\融合!EnableLog]。
答案 0 :(得分:3)
尝试加载格式不正确的程序
在99%的情况下,这只是在64位程序中引发此异常时的一件事。 “格式不正确”是包含32位代码的DLL。这不起作用,64位程序只能加载64位DLL。
如果您使用C#编写该加载项,那么这是一个非常简单的修复。在Solution Explorer窗口的Properties,Build选项卡中右键单击该项目。将“平台目标”设置为AnyCPU。如果你看到它(VS2012及以上),请取消选中“首选32位”复选框。对Release版本配置重复此操作。
其他可能的解释,不寻常的情况:
你需要SysInternals的Process Monitor来追逐这些不幸事件。该跟踪显示了Office程序正在查找的DLL以及它在哪个目录中查找DLL。这将是一个很大的痕迹,从追踪的底部向后工作。
答案 1 :(得分:1)
查看MSDN中的Deploying an Office Solution by Using Windows Installer文章,该文章深入介绍了所有必需的步骤。它陈述如下:
32位
HKEY_LOCAL_MACHINE\SOFTWARE(32-Bit)\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn
64位
HKEY_LOCAL_MACHINE\SOFTWARE(32-Bit)\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn
HKEY_LOCAL_MACHINE\SOFTWARE(64-Bit)\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn
64位Windows的安装程序需要两个注册表路径,因为用户可以在运行64位Windows的计算机上运行32位和64位版本的Office。
但您可以检测(在自定义操作中)安装的MS Office的位数,并在正确的配置单元中创建密钥。