1

我目前正在为新数据库创建InitialCreate迁移。我是这个迁移框架的新手,不知道它产生了什么,我一直在运行update-database查看结果,删除数据库,然后在对结果进行一些更改后再次运行update-database代码优先迁移MissingManifestResourceException

两次我现在已经做了一些改变,去运行更新,并得到了如下的错误:

应用基于代码的迁移:201209121936571_InitialCreate。 System.Resources.MissingManifestResourceException:无法找到适用于指定文化或中性文化的任何资源。确保在编译时“$ assemblyName $ .resources”已正确嵌入或链接到程序集“$ assemblyName $”中,或者确保所有需要的附属程序集均可加载并完全签名。 在[堆栈跟踪]

然后,它以红色结束与

找不到适合于指定培养或中性培养的任何资源。确保“$ assemblyName $ .Migrations.InitialCreate.resources”在编译时被正确嵌入或链接到程序集“$ assemblyName $”中,或者确保所有需要的附属程序集均可加载并完全签名。

我第一次遇到这个,我放弃了迁移文件夹,运行enable-migrations重新做了我的修改并且能够运行迁移。

它又发生了,我不想在每次发生这种情况时重新创建文件。有谁知道如何解决这个问题,使迁移再次工作?

+1

参照这个主题,它解决了我的问题。 http://stackoverflow.com/a/17484445/193634 –

回答

2

我最终在把所有我想提出的问题的信息放在一起的过程中弄清楚了这一点。也就是说,试图重现这个问题。

事实证明,如果您有一个除DbMigration的继承者以外的类作为文件中的第一个类,那么Resource文件将使用另一个类的名称,而不是用于中断迁移的迁移。

我提交了一个报告错误here