环境问题: VS2019 - ver16.6
, Windows 10 pro 1903
我按照 这个 来自微软团队的链接,以创建一个 VS2019
溶液与 .NET Standard 2.0
图书馆项目和一个假人 .NET Core Console
应用作为一个启动项目。在该方案中,我也按照这个 EF核心官方教程 营造 SQLite
数据库 MySQLiteDb.db
)的根目录下创建的。.NET Core Console
.
之后,我参考了 .NET Standard
馆中 WPF Full Framework
项目来执行一些db操作。为此,我复制了 MySQLiteDb.db
从上述项目到这个 WPF
项目并设置其 Copy to output directory
采取行动 Copy if newer
与 Build Action
作为 None
. 现在,这个 WPF Full Framework
应用程序工作正常,并执行多个数据库操作,在 MySQLiteDb.db
.
但是,当我在上面做同样的事情的时候,在一个 微软VSTO插件 的项目,引用相同的 .NET Standard
库,但我得到了一个不一致的行为。例如,有一半的时间 应用程序成功地执行了一次数据插入 但大约有一半的时间 应用程序在数据插入时抛出了以下错误。而且没有数据验证,因为这个测试db有三个简单的文本列,没有唯一的keysindex等。问题:为什么在数据插入时出现这种不一致的行为?为什么会出现这种不一致的行为?VSTO
项目而不在 WPF
项目,而两者都 .NET 4.8
项目。那如何解决这个问题呢?
错:
内在异常1:SqliteException。SQLite Error 1: 'no such table: MyTable'.
为什么在VSTO项目上有这种不一致的行为,但在WPF项目上没有,而两者都是.NET 4.8项目。
您需要确保插件使用的是.net framework 4.0运行时(CLR),它对应的是.net framework 4.8,而不是CLR 2.0。您可以使用配置文件来指定主机应用程序要使用的运行时版本,请参见 应用程序配置文件 更多信息 runtime
元素。