嵌入互操作类型

时间:2017-12-30 13:33:49

标签: .net vb.net dll interop

我正在分发使用NUGET整合到我的项目中的System.Data.Sqlite.dll

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

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

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

但是,我不想分发Interop dll。 因此,我在我的解决方案中右键单击参考System.Data.Sqlite并设置" Embed Interop Type" to" True"。

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

  

当程序集配置为嵌入Interop类型时,对SQLiteCommand类的引用不起作用。

我是否真的必须分发Sqlite.Interop.dll,还是我能解决这个问题是一种优雅的方式吗?

谢谢。

2 个答案:

答案 0 :(得分:0)

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

另请参阅此document

答案 1 :(得分:0)

使用 SQLitePCL*.* nuget(用于 .net 4.0 支持的 SQLitePCL.raw)。