【发布时间】:2020-06-21 05:04:20
【问题描述】:
我有 NET Core 3.1 应用程序,而我的 [models,dbcontext,application] 都在它们自己的程序集中。我正在尝试为应用程序发出迁移。我不断收到此错误:
$ dotnet ef migrations add InitialCreate --project DataAccess
MSBUILD:错误 MSB1009:项目文件不存在。转变: DataAccess 无法检索项目元数据。确保它是一个 基于 MSBuild 的 .NET Core 项目。如果您使用自定义 BaseIntermediateOutputPath 或 MSBuildProjectExtensionsPath 值,使用 --msbuildprojectextensionspath 选项。
当前结构
*root
-App (.NET Core 3.1)
-DataAccess (.NET Standard 2.1) (Contains the DBContext)
-Models (.NET Standard 2.1) (contains models)
我还尝试为迁移创建一个单独的程序集,并在我的 App 中使用 MigrationAssembly 扩展:
services.AddDbContext<[some DBContext]>(x => x.UseSqlServer([some string],x=>x.MigrationsAssembly("Migrations")));
尝试过的结构
*root
-App
-Migrations (.NET Standard 2.1)
-DataAccess (.NET Standard 2.1)
-Models (.NET Standard 2.1)
我不明白该怎么做。我希望能够进行迁移,理想情况下我希望将它们保留在自己的程序集中。目前我根本无法做到。
P.S
我也尝试将其添加到我的 Appcsproj 文件中:
<GenerateRuntimeConfigurationFiles>True</GenerateRuntimeConfigurationFiles>
【问题讨论】:
-
在相同的项目结构中,下面的命令对我有用。 CLI 在 App 文件夹中打开 App> dotnet ef migrations add your_migrationName --project "Absolute path to your migration assembly (c:/root/migrations)"
-
如果对您有帮助,您介意将其中一个答案标记为已接受吗?
标签: msbuild entity-framework-core entity-framework-migrations