Access 2003 的托管代码插件

Posted

技术标签:

【中文标题】Access 2003 的托管代码插件【英文标题】:Managed Code AddIn for Access 2003 【发布时间】:2009-06-24 09:23:01 【问题描述】:

我使用 Visual Basic 2008(VS Professional)为 Access 2003 创建了一个托管代码插件,它在我的开发机器上运行良好。它是使用共享插件模板创建的。

我使用设置项目安装...并安装了.Net Framework。

但是,当我尝试部署到另一台 PC 时,我收到以下错误:

对象“COMAddIn”的方法“Connect”失败

失败的代码是:

With COMAddIns("MyAddin1.Connect")
    ' Make sure the COM add-in is loaded.
    .Connect = True  'The code crashes here

    .Object.TestAddIn
End With

用于创建的文章是 here(尽管这是为 Access 2007 编写的)

加载项确实存在于集合中,但未连接。它也不会出现在通过 MS Access 2003 GUI 安装的 COM ADD-INS 列表中。

我已尝试重新安装 Office 2003(完整安装)并重新安装加载项。

【问题讨论】:

【参考方案1】:

几点建议:

Office 2003 应用程序需要 KB908002,而不是 Office 2007 - 我相信有 .net 框架修补程序/SP 会安装它 - 多次安装它没有害处 - 它会检查以确保是否已安装已安装。

需要 Office 2003 主互操作程序集 - 如果您有安装程序,则应排除其中列出的任何 office 依赖项(office.dll、Microsoft.Vbe.Interop.dll 等)并确保已安装 PIA

您可以通过将 PIA 添加到目录中来将其放入构建中 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\Office2007PIA 以及 product.xml,以便它出现在安装项目的先决条件部分中。 (从 MS 下载这些)。

安装程序应该生成一些注册表项,因此需要在客户端上安装,检查 HKLM/SOFTWARE/Microsoft/Office/Access/AddIns 是否列出了您的插件(我假设它会在那里,Excel插件列在 Office/Excel/AddIns 下(在这个级别,不在 Office/11.0/...下)

【讨论】:

不确定您是否已经完成这项工作,另一种可能性是您的程序集在 OnConnection 或 OnStartupComplete 的函数中引发异常 - 值得确保您捕获任何异常并记录它们。 在客户端安装 KB908002 修复程序已解决该问题。感谢您的帮助。【参考方案2】:

共享插件存在很多部署问题。一项重要的工作是部署 KB908002 修复程序。另一个是“Office 200x Redistributable Primary Interop Assemblies”。

【讨论】:

感谢您的回答。除非我弄错了,KB908002 是用于 Visual Studio 2005 而不是 VS 2008,所以不确定这是否仍然适用并且无论如何都无法在 VS 2008 上安装它。 我目前正在阅读msdn.microsoft.com/en-us/library/zdc263t0.aspx 的文章以尝试使其正常工作。 不,2008 年也需要 KB908002。问题是您必须手动添加它作为 2008 年的先决条件,但需要它。去过那里,做到了... sigh

以上是关于Access 2003 的托管代码插件的主要内容,如果未能解决你的问题,请参考以下文章

关于如何使用 JUCE 托管 VST 插件的教程? [关闭]

使用 MS Access 2003 连接到 SQL Server 2005

VSTO开发者指南的介绍

非托管 jar 文件中的 SBT 插件

2003 年使用 POST / JSON 托管 WCF Rest 服务

DAY2-介绍准备