指定的deps.json [path\App.Web.Site\App.Web.deps.json] 不存在

Posted

技术标签:

【中文标题】指定的deps.json [path\\App.Web.Site\\App.Web.deps.json] 不存在【英文标题】:The specified deps.json [path\App.Web.Site\App.Web.deps.json] does not exist指定的deps.json [path\App.Web.Site\App.Web.deps.json] 不存在 【发布时间】:2019-10-23 06:39:00 【问题描述】:

我尝试在我的 .net 核心 Web 应用程序上运行实体框架 (Microsoft.EntityFrameworkCore 2.24) 迁移,我得到了这个:

PM> add-migration "initial"
The specified deps.json [path\App.Web.Site\App.Web.deps.json] does not exist

这里有什么问题?

附: App.Web.deps.json 可以在 path\App.Web.Site\bin\Debug\netcoreapp2.2 中找到

【问题讨论】:

【参考方案1】:

我仍然不知道问题是什么,但是将 Visual Studio 2019 降级到 2017 以某种方式解决了这个问题。

【讨论】:

【参考方案2】:

我在将 Visual Studio 更新到 16.1.3 后遇到了同样的问题。创建新项目,运行它,停止调试,然后我在包管理器控制台中阅读以下内容:

PM> add-migration -v initial
Using project 'TestEf2'.
Using startup project 'TestEf2'.
Build started...
Build succeeded.
C:\Program Files\dotnet\dotnet.exe exec --depsfile G:\testef\TestEf2\TestEf2.deps.json --additionalprobingpath C:\Users\snytko\.nuget\packages --additionalprobingpath "C:\Program Files\dotnet\sdk\NuGetFallbackFolder" "C:\Program Files\dotnet\sdk\NuGetFallbackFolder\microsoft.entityframeworkcore.tools\2.2.0\tools\netcoreapp2.0\any\ef.dll" migrations add initial --json --verbose --no-color --prefix-output --assembly G:\testef\TestEf2\TestEf2.dll --startup-assembly G:\testef\TestEf2\TestEf2.dll --project-dir G:\testef\TestEf2\ --language C# --working-dir G:\testef\TestEf2 --root-namespace TestEf2
The specified deps.json [G:\testef\TestEf2\TestEf2.deps.json] does not exist
PM> 

我使用他们的反馈系统将此提交给了微软。希望它有效。生成的文件在另一个路径:

G:\testef\TestEf2\bin\Debug\netcoreapp2.2\TestEf2.deps.json

每次需要使用迁移时,只需将 bin 目录的所有内容复制到 EF 搜索 deps 文件的路径即可。

【讨论】:

【参考方案3】:

我在 VS 16.11.7 上遇到了同样的问题,这让我很头疼。

当然这里有一些解决方法: https://github.com/dotnet/efcore/issues/16386

这些步骤也对我有用:

a) dotnet tool uninstall --global dotnet-ef(仅在存在时删除)

b) dotnet tool install --global dotnet-ef (如果不存在则安装)

c) dotnet ef(查看是否安装正确)

d) dotnet ef 迁移添加 InitialCreate

e) dotnet ef 数据库更新

如果你和我有同样的问题,最简单的方法是从 VS Package Manager 控制台运行这个命令:

(Get-Project).ConfigurationManager.ActiveConfiguration.Properties.Item('OutputPath').Value

最初的结果是一个空异常。 在另一台机器上,结果是“bin\Debug\net5.0”

但我最终通过从 Visual Studio 安装程序卸载并重新安装以下组件解决了这个问题:

ASP.NET 和 Web 开发 Azure 开发 .net跨平台开发

希望对您有所帮助! 竖起大拇指!

【讨论】:

【参考方案4】:

尝试将此添加到您的 .csproj 文件中

<PropertyGroup>
  <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>

【讨论】:

以上是关于指定的deps.json [path\App.Web.Site\App.Web.deps.json] 不存在的主要内容,如果未能解决你的问题,请参考以下文章

.NET Core 中的 *deps.json 文件

无法生成 deps.json 以启用迁移

深入理解.NET Core的基元: deps.json, runtimeconfig.json, dll文件

json 制作的Airbnb-eslint-deps.json

深入 .NET Core 基础 - 1:deps.json, runtimeconfig.json 以及 dll

Visual Studio 2019 未将引用的项目添加到 deps.json