问题描述
我目前遇到的问题是,旧版软件在我的本地机器上运行良好,但是当我部署新版本时,客户的应用程序崩溃了。
应用程序使用 devart 连接到使用的 oracle-database。我已经用他们的 NuGet 版本和本地替换了引用的 devar dll,一切正常。当我从本地电脑复制编译的文件并尝试在客户机器上执行它们时,出现以下错误:
System.TypeLoadException: Method "InternalClone" in type "Devart.Common.Entity.fa" from assembly "Devart.Data.Oracle.Entity.EF6,Version=9.4.348.0,Culture=neutral,PublicKeyToken=09af7300eec23701" does not have an implementation.
我尝试了其他版本的 devart nugets,但没有成功。当前安装的版本与最新版本的应用程序相同,对于我们的客户来说运行良好。
非常感谢任何帮助,因为我已经尝试解决这个问题两天了。
编辑:我正在使用 .net framework 4.6
和 entity framework 6
,not .net core
或 .net standard
解决方法
如果项目的目标框架属性设置为 .NET Framework,则应使用提供程序安装附带的 Devart.* 程序集:
- “C:\Program Files (x86)\Devart\dotConnect\Oracle\Devart.Data.dll”
- “C:\Program Files (x86)\Devart\dotConnect\Oracle\Devart.Data.Oracle.dll”
- “C:\Program Files (x86)\Devart\dotConnect\Oracle\Entity\EF6\Devart.Data.Oracle.Entity.EF6.dll”
包 https://www.nuget.org/packages/devart.data.oracle.ef6 包含为 .NET Standard 2.1 编译的程序集。