我继承了最初使用.NetCore 2.0编写的项目。我们正在使用的ServiceStack.OrmLite.SqlServer.Core的版本是1.0.43。我升级了NuGet中的所有内容,因此ServiceStack现在是5.4.0。
现在的问题是,当我尝试运行代码时:
var dbFactory = new OrmLiteConnectionFactory(dbConnection.ConnectionString, SqlServerDialect.Provider);
using (var db = dbFactory.Open())
我收到错误
System.TypeInitializationException: The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'System.Text.Encoding.CodePages, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
在向下钻取中,我看到ServiceStack引用代码页4.5版的依赖项。
我不确定该怎么做...
答案 0 :(得分:1)
如果它是.NET Core项目,则它不应使用任何*.Core
软件包,这些软件包在v5之后仅用于运行ASP.NET Core Apps on the .NET Framework。
从v5开始,主要软件包,例如ServiceStack.OrmLite.SqlServer包含.NET Standard 2.0和.NET 4.5 Framework构建。
鉴于它引用了错误的软件包,我将卸载所有ServiceStack软件包,而仅安装 non .Core ServiceStack软件包。