2014-07-18 66 views
2

我在EntityFramework中有一个迁移API的问题。我的DataContext和实体包含在dll中,名称很强大(用证书签名),当我部署我的应用程序时,它将dll放在GAC中。因此,当我在包管理器控制台中使用迁移命令时,它始终使用GAC中的dll而不是项目文件夹中的dll。因此,在模型更改之后添加新迁移,我需要将dll部署到GAC,然后重新启动Visual Studio,然后运行Add-Migration。EntityFramework CodeFirst在强名称的DLL迁移

有没有办法强制使用项目中的dll?我试图用目标的AppDomainBaseDirectory参数来调试项目输出文件夹,但它没有帮助。

回答

2

GAC具有比相同的区域组合更高的优先级程序集版本,请检查this article

解决您的问题,或者:

  1. 取消选中“登录大会”在签名选项卡发展(比重新启动Visual Studio)
  2. 或者增加程序集版本中手动或自动使用Build Version Increment Add-In覆盖加载GAC

    如链接评论中所述,为VS2012安装。

    • C:\Users\[User]\Documents\Visual Studio 2010\Addins安装BuildVersionIncrement_VS2010
    • 复制BuildVersionIncrement.AddinBuildVersionIncrement.dllC:\Users\[User]\Documents\Visual Studio 2012\Addins
    • 编辑BuildVersionIncrement.Addin<Version>10.0</Version>11.0
    • 设置集版本的风格(主要,次要,建立,修订版)。用于自动构建,修改段就足够了

    • Versioning style

2

只是一个想法,但我不知道包管理器控制台是否会拿起你的app.config程序集绑定重定向?如果你还没有任何地方,可能值得一试。

只要确保你的本地和GAC组件有不同的版本号,并把重定向信息在您的迁移项目的app.config按照此链接:http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx