我在EntityFramework中遇到迁移api的问题。我的DataContext和实体包含在dll中,具有强名称(使用证书签名),当我部署我的应用程序时,它将dll放在GAC中。因此,当我在软件包管理器控制台中使用迁移命令时,它始终使用GAC中的dll而不是项目文件夹中的dll。因此,要在模型更改后添加新迁移,我需要将dll部署到GAC,然后重新启动Visual Studio,然后运行Add-Migration。
有没有办法强制从项目中使用dll?我试图将AppDomainBaseDirectory参数与目标一起用于项目输出的Debug文件夹,但它没有帮助。
答案 0 :(得分:2)
只是一个想法,但我想知道包管理器控制台是否会在你的app.config中选择程序集绑定重定向?如果你还没到任何地方,可能值得一试。
只需确保您的本地和GAC程序集具有不同的版本号,并根据以下链接将重定向信息放入迁移项目的app.config中:http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx
答案 1 :(得分:2)
对于相同的程序集版本,GAC优先于区域设置程序集,请选中this article。
要解决您的问题,请执行以下操作:
使用Build Version Increment Add-In 手动或自动增加程序集版本以覆盖加载GAC
如链接评论中所述,安装VS2012。
BuildVersionIncrement.Addin
和BuildVersionIncrement.dll
从C:\Users\[User]\Documents\Visual Studio 2010\Addins
复制到C:\Users\[User]\Documents\Visual Studio 2012\Addins
BuildVersionIncrement.Addin
<Version>10.0</Version>
至11.0
设置程序集版本控制样式(主要,次要,构建,修订)。对于自动构建,修订段就足够了