嵌入互操作类型时引用 SQLiteCommand 类无效

Referencing SQLiteCommand class not valid when embedding interop type

提问人:tmighty 提问时间:12/30/2017 最后编辑:djvtmighty 更新时间:4/16/2021 访问量:356

问:

我正在分发我使用 NUGET 集成到我的项目中的内容。System.Data.Sqlite.dll

我将我的应用程序发布为 x86。

如果我只是将 System.Data.Sqlite.dll 分发到我的应用程序文件夹,我的应用程序就会崩溃。

当我分发文件“SQLite.Interop.dll”时,VS 在编译时将其放入 bin\x86\Release\x86\,我的应用程序不再崩溃,一切正常。

但是,我不想分发 Interop dll。 因此,我右键单击解决方案中的引用 System.Data.Sqlite,并将“嵌入互操作类型”设置为“True”。

现在 Visual Studio 不想再编译我的应用程序了,它告诉我

当程序集配置为嵌入互操作类型时,对 SQLiteCommand 类的引用无效。

我真的必须分发Sqlite.Interop.dll吗,或者我可以解决这个问题是一种优雅的方式吗?

.NET vb.net DLL 互操作

评论

2赞 user4003407 1/8/2018
您可以从此处下载捆绑包。它们包含混合模式程序集,该程序集将本机组件嵌入到托管程序集中。

答:

0赞 Shyju C R 5/23/2018 #1

如果我们将“嵌入互操作类型”设置为“False”,它将正常工作。

否则,请参阅此文档

0赞 Nepaluz 4/16/2021 #2

使用 SQLitePCL*.* nugets(SQLitePCL.raw for .net 4.0 支持)。