迁移时拒绝访问 ContextModelSnapshot

Access denied to ContextModelSnapshot while migrating

我正在使用 EF Core 2.0 在我的 ASP.NET 核心项目中添加迁移。 我 运行 我的包管理器控制台中的“Add-Migration”migrationName“命令。 迁移已成功添加到我的迁移文件夹中,但是,在尝试更新快照时出现此错误:

Access to the path 'C:\path\to\snapshot\DbContextModelSnapshot.cs' is denied.

现在我的迁移文件夹中有一个新的迁移,但有一个旧的快照,因为它目前无法更新。 迁移保存在与快照相同的文件夹中,所有用户都可以 read/write 访问该文件夹。

我该如何解决这个问题?

我猜: 您的解决方案在 TFS 源代码管理下,带有服务器工作区。 在您最初签入代码后,文件变为 read-only。 似乎 PM 不会自动将文件检出(或添加迁移文件)到源代码管理。所以为了解决这个问题: 在 运行 命令之前,检查快照,在 运行 迁移之后将新生成的文件添加到源代码管理。

我遇到过同样的情况。

Access to the path 'C:\repos\ProjectName\Migrations\ProjectNameDbContextModelSnapshot.cs' is denied.

只需用 Windows 资源管理器右键单击文件 projectDbContextModelSnapshot.cs,看到有只读标志,然后删除此复选框。问题已解决。