VS 2012.3 引用 MS Access COM DLL,无法解决 COM 引用错误

问题描述 投票:0回答:4

我在VS2012.3(32位exe)中创建了一个新的控制台项目,并添加了对Microsoft Access的COM类型库引用(我尝试了2003和2007)。 “Microsoft Access”引用显示在“添加引用”对话框中没有问题。 但是,关闭该对话框后,VS 在两个新添加的引用上显示黄色三角形覆盖,并且出现以下构建错误:

无法解析 COM 引用“4affc9a0-5f99-101b-af4e-00aa003f0f07” 版本9.0。未将对象引用设置为对象的实例。

我的同事可以在他们的计算机上毫无问题地执行此操作。 所以我想找出我的机器可能出现的问题。 我运行的是 Windows 8.1,而其他人运行的是 Windows 8.0 和 7 的混合版本。有什么想法吗?

更新 - 一些屏幕截图: MS Access in OLEView

Add Reference Dialog

VS COM References not found

ADODB Interop Assembly

ADODB GAC

MsADO25.tlb

Missing PrimaryInteropAssemblyName value in Registry

visual-studio ms-access visual-studio-2012 com windows-8.1
4个回答
19
投票

问题已解决: 我在这里找到了解决方案:http://support.microsoft.com/kb/823996
我所要做的就是打开“VS2012 的开发人员命令提示符”,向下导航到 GAC 的 ADODB 文件夹,然后运行

regasm.exe ADODB.dll
。 这解决了整个问题。

At VS 2012 Command Prompt run regasm

问题已解决: VS COM References now found.


1
投票

Windows 8.1 附带最新的 .NET 4.5.1 运行时。首先,尝试安装 .NET 3.5(其中包括 .NET 2.0/3.0,默认情况下不存在)。您可以通过

Control Panel
/
Turn Windows Feartures on and off
来完成此操作。

此外,

{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}
GUID 建议您使用的是 Office 2010。应在此处找到相应的类型库:

C:\Program Files (x86)\Microsoft Office\Office14\MSACC.OLB

尝试用OleView打开看看是否有错误。

下一步将检查 Access 的主互操作程序集 (PIA)

Microsoft.Office.Interop.Access.dll
是否已正确安装。它应该可以在以下位置找到:

C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Access\

最后,您可以尝试修复 Office 2010 安装(应重新注册类型库),重新安装 Office 2010 PIAs,最后安装最新的 VSTO Runtime(显然,该链接 仍然是最新的)对于 VS2013)。


0
投票

首先将我的计算机从 Windows 10 升级到 Windows 11 后,Visual Studio 给了我与本文标题相同的错误。我按照Lee Grissom的回复执行了步骤,但仍然不起作用。

因此,我从用户 Bedford Bob

msdn 帖子 
的最新评论中找到了一条建议,删除了此引用
Microsoft ActiveX Data Objects 2.8 Library
从项目中再次构建,并且可以工作。

我不知道如何,但再次添加引用后(仅用于测试),该项目现在可以正常工作,没有任何问题,哈哈。


0
投票

对我来说,也是在将我的计算机从 Windows 10 升级到 11 之后,就像 Diego Montania 的答案。然而,我没有任何关于 Microsoft ActiveX 的参考。

相反,我执行了 Office 快速修复:

"C:\Program Files\Common Files\microsoft shared\ClickToRun\OfficeClickToRun.exe" scenario=Repair RepairType=QuickRepair

然后,我在 Visual Studio 中删除并重新添加了引用。

现在编译工作了。希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.