尝试在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”。那么,为什么他要在项目目录中搜索此文件?
答案 0 :(得分:0)
好的,事实证明$(SolutionDir)仅在从VisualStudio编译时有效。使用其他方式(例如dotnet命令)构建应用程序时,$(SolutionDir)不存在。因此,唯一的方法是从项目文件创建相对路径。