我正在寻找一个解决方案(如果可能的话)来使用比开发机器上安装的连接器更新的MySql.Data版本。
例如,我们遇到了一些问题,我们的调试中出现了一些Mysql错误(EF6正在转换SQL StartsWith()
中的Locate()
),即使它被认为是在DLL中修复的在项目中(6.9.5)。
当我们使用安装了6.9.5连接器的机器(在Program Files中)测试它时,它可以工作。
现在,我意识到我们应该安装最新的连接器,但有时候(即使很少)也必须使用一些旧版本。或者我们必须在没有时间等待管理员授予我们安装新连接器的情况下解决问题。
所以问题是,有没有办法强制使用项目引用中实际存在的DLL,无论机器上安装了哪一个?
奖金问题,如果我们安装了最新的连接器并使用较旧的DLL打开项目会发生什么?它会使用安装的那个,还是仅当项目中的DLL更新时?
修改
正如现在删除的评论所指出的那样,项目是否应该使用属性中引用的DLL?这个是通过NuGet安装并指向Packages
文件夹。
答案 0 :(得分:0)
我有一个项目(vs 2013)使用v6.5.5.0(因为它部署的服务器),而我更新到我的机器上的最新版本。 这就是我所做的:将dll从服务器复制到我的机器,添加对项目的引用,在属性中设置"复制本地=真"一切正常。没问题。
我认为强制它的方法是设置" Copy Local = true",它应该每次都使用引用的dll。