EF迁移和$ SolutionDir,.NetCore 2.2

时间:2019-06-10 11:36:07

标签: visual-studio .net-core entity-framework-core ef-migrations

尝试在EF中进行初始迁移时遇到一个奇怪的错误。

我有几个项目-主要是.NetStandard。 每个项目都会导入自定义.targets文件。这些就是.csproj文件顶部的行:

<Import Project="$(SolutionDir)Common.targets" />

现在,当我构建应用程序时,一切正常。当我运行桌面项目(使用那些.NetStandard dll)时,一切正常。

但是当我尝试添加初始数据库迁移时,出现类似以下错误:

D:\SolutionDir\ProjectDir\Project.csproj: error MSB4019: Cannot find imported project file: "D:\SolutionDir\ProjectDir\Common.targets" Make sure that the path in <Import> declaration is valid and the file exists.

请注意,我正在使用$(SolutionDir),因此有效路径为:“ D:\ SolutionDir \ Common.targets”。那么,为什么他要在项目目录中搜索此文件?

1 个答案:

答案 0 :(得分:0)

好的,事实证明$(SolutionDir)仅在从VisualStudio编译时有效。使用其他方式(例如dotnet命令)构建应用程序时,$(SolutionDir)不存在。因此,唯一的方法是从项目文件创建相对路径。