msadox28.tlb 在注册时不是有效的 .Net 程序集文件
Posted
技术标签:
【中文标题】msadox28.tlb 在注册时不是有效的 .Net 程序集文件【英文标题】:msadox28.tlb is not a valid .Net assembly file while registering it 【发布时间】:2021-11-08 14:35:42 【问题描述】:我正在使用 vb.net (2015) 和 MS Access 数据库开发应用程序。我可以在现有数据库中正常工作。我现在有需要以编程方式创建数据库以进行计费的情况。这是每个文件夹将包含用于公司/公司选择的数据库的情况。
在互联网/*** 上搜索后,我了解了 ADOX。甚至得到了它的现成代码。我在我的编码中应用了它。
-
添加对 Microsoft ADO 扩展 2.8 和 6.0 的引用
创建变量 Adx 作为新的 Adox.catalog
然后最后写了 Adx.create(olejet provider conn string with data source)
在这一步我得到一个错误
COM 类未注册
所以我尝试用regsvr32
和regasm
注册msadox.dll
和msadox28.tlb
但当时我又遇到了另一个错误:
msadox.dll 注册成功,但 msadox28.tlb 出现错误 无法加载 -file- 因为它不是有效的 .net 程序集文件
现在我被困在这一点上。
我的系统是 Windows 10 64 位。我试图以 cpu x86 和任何 cpu 为目标,但它不起作用。我在这里有很多问题和答案,但不明白。
编辑:
我尝试了以下连接字符串并且它有效,但它创建了旧的 2000-2003 mdb 文件。我想使用新的访问文件 .accdb
字符串是:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\VBProj\Testing\test.mdb;Jet OLEDB:Engine Type=5
编辑:2021 年 9 月 20 日 - 星期一
首先非常感谢@Jimi,您对使用 ACE.16 和清洁液的建议奏效了。非常感谢
我使用以下步骤在 VB.NET 中使用 ADOX 创建 MS Access 数据库:
项目菜单 > 添加引用 > COM 部分 > 选择 Microsoft ADO Ext. 6.0 用于 DLL 和安全性
在程序入口点写入连接字符串(form load/sub main)-> Provider=Microsoft.ACE.OLEDB.16.0;Data Source=D:\VBProj\Testing\test.accdb
,赋值给变量connString
像Public gAdxCat As New ADOX.Catalog
一样全局声明adox目录
使用它的方法gAdxCat.create(connString)
这就是全部 - 完成
再次感谢@jimi
【问题讨论】:
您是否在项目中向Microsoft ADO Ext. 6.0 for DDL and Security
添加了引用?这将在\[Project]\Obj\Debug
中创建互操作程序集。 -- Embed Interop Types
通常默认设置为true
。
是的参考已添加
是的@jmcilhinney,当我发布这个问题时,我也很惊讶。我只是想加粗一行消息,但整个消息都变粗了。但现在我可以在我的系统中以普通/常规字体看到它。
删除对版本2.8
的引用。顺便说一句,您不需要旧的 Jet Engine,也可以使用新的 Providers,例如 ACE.12
和 ACE.16
,使用 ADOX 构建数据库。使用 Jet,您的应用程序需要以 x86 为目标。
谢谢@Jimi - 您对使用 ACE.16 的建议奏效了,非常感谢您的宝贵帮助。
【参考方案1】:
这是我的问题的答案(@jimi 帮助)
以下是在 VB.NET 中使用 ADOX 创建 msaccess 数据库的步骤,并在原始问题中提及错误。
1-项目菜单 > 添加参考 > COM 部分 > 选择 Microsoft ADO Ext. 6.0 用于 DLL 和安全性(删除 2.8 的参考)
2-在程序入口点写入连接字符串(表单加载/子主)->“Provider=Microsoft.ACE.OLEDB.16.0;Data Source=D:\VBProj\Testing\test.accdb”将其分配给变量连接字符串
3-在全局范围内声明 adox 目录,例如 Public gAdxCat As New ADOX.Catalog
4-用户其方法gAdxCat.create(connString)
5-到此为止
再次感谢@jimi
【讨论】:
以上是关于msadox28.tlb 在注册时不是有效的 .Net 程序集文件的主要内容,如果未能解决你的问题,请参考以下文章
电算化软件SQL Server的超级用户口令修改过,用友网络财务软件不能连接到SQL Server,请输入其超级用户(s
应用程序是不是应该每 7 天调用一次 gcm.register() 以确保注册 ID 有效?