我在startup.cs中创建了dbcontext网络核心项目,还创建了Web服务网络核心项目(Proca.WebAPI)和ConfigureServices。然后,将Web服务项目设置为启动项目,并尝试在程序包管理器控制台中运行“添加迁移InitialCreate”。然后出现以下错误:
PM>添加迁移InitialCreate 正在运行的命令已停止,因为首选项变量“ ErrorActionPreference”或公共参数设置为“停止”:找不到路径'E:\ git \ Proca.Core \ src \ Proca.WebAPI \ E:\ git \ Proca.Core \ out \ bin \ Proca.WebAPI \ Debug \ netcoreapp2.1 \”,因为它不存在。
我只是感到困惑,为什么路径与前缀启动项目路径重复。这里有什么问题或配置丢失吗?我也尝试将dbcontext proj用作启动proj,并执行相同的操作,但仍然收到类似的错误。
谢谢
答案 0 :(得分:1)
忽略此问题。
这是因为工作伙伴在PropertyGroup(Directory.Build.props)中设置了输出路径,因此导致此无效路径。在csproj文件中重置此值后,它可以解决问题。
答案 1 :(得分:0)
这是一个较旧的问题,但是我遇到了尝试将ef core 3.1迁移工具与Directory.Build.props一起使用的问题。似乎ef核心迁移工具正在连接BaseIntermediateOutputPath和OutputPath,因为我会收到以下错误://
“ ErrorActionPreference”或公共参数设置为“停止”:无法 找到路径 'C:\ code \ MySolution \ src \ MyProject \ C:\ code \ MySolution \ build \ bin \ MyProject \ Debug \ netcoreapp3.1 \' 因为它不存在。
注意:我的项目遵循的结构为C:\ code \ MySolutionFolder \ src \ MyProjectFolder,并且输出(bin)和中间(obj)的生成文件夹(C:\ code \ MySolutionFolder \ build \)是两个项目文件夹(.. \ .. \)上方的文件夹。
原始:// Directory.Build.props
<Project>
<PropertyGroup>
<BaseIntermediateOutputPath>$(SolutionDir)build\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)</IntermediateOutputPath>
<OutputPath>$(SolutionDir)build\bin\$(MSBuildProjectName)\$(Configuration)\</OutputPath>
</PropertyGroup>
</Project>
WorkAround://:我使用以下方法来替代使用ef核心迁移工具,并且仍然保留了我的构建过程和文件夹。 (在OutputPath中将$(SolutionDir)替换为.. \ .. \)
<Project>
<PropertyGroup>
<BaseIntermediateOutputPath>$(SolutionDir)build\obj\$(MSBuildProjectName)\</BaseIntermediateOutputPath>
<IntermediateOutputPath>$(BaseIntermediateOutputPath)</IntermediateOutputPath>
<OutputPath>..\..\build\bin\$(MSBuildProjectName)\$(Configuration)\</OutputPath>
</PropertyGroup>
</Project>