目前正在对我的项目进行重组,这样我就可以针对多个框架。
目前,我的解决方案的结构是这样的
MyProject (Solution)
MyProject.Server (Project targeting net462)
MyProject.Models (Project targeting netstandard2.0)
MyProject.DataAccess (Project targeting netstandard2.0)
模型和DataAcces都通过NuGet引用Pomelo.EntityFrameworkCore.MySql, Version=2.1.1.0
。
当DataAccess包含UnitOfWork模式时,模型将保存我的数据库模型和数据库上下文。
当所有项目都以netfx为目标并且使用EntityFramework 6进行数据库连接时,此方法运行良好。
这些项目的构建都很好,并且启动它们没有任何问题(我应该在这里提到,我的项目是一种用于多人修改的资源。资源文件的加载方式如下:https://github.com/GTANetworkDev/platform/blob/master/Server/Resources.cs#L198 {{1} }在这种情况下为false)。
但是一旦我的资源想要打开与数据库的连接,我就会得到一个很大的异常,告诉我ourResource.Info.Info.Shadowcopy
由于版本不匹配(https://hastebin.com/wodojakure.log)而无法加载。
文件System.ComponentModel.Annotations, Version=4.2.0.0
存在,但具有以下属性
System.ComponentModel.Annotations.dll
我已经尝试使用AssemblyVersion=4.2.1.0
AssemblyFileVersion=4.6.26515.06
重新绑定失败的程序集,原因是我不太了解。
app.config
app.config与其他资源dll放在同一文件夹中,在服务器可执行文件所在的同一文件夹中。
答案 0 :(得分:0)
解决方案是,可执行文件(然后调用我的dll)需要一个配置文件,您可以在其中指定绑定重定向,而不是所调用的dll本身。
现在,它就像一种魅力。感谢您尝试解决该问题的人们。