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

Posted

技术标签:

【中文标题】Visual Studio 2019 未将引用的项目添加到 deps.json【英文标题】:Visual Studio 2019 not adding referenced projects to deps.json 【发布时间】:2020-06-21 20:19:12 【问题描述】:

我有一个在 Visual Studio 2019 (16.4.5) 中构建的现有 WPF 应用程序,其大部分后端通用代码位于 .NET Standard 类库中。我正在尝试启动一个基于 Avalonia MVVM 的新前端,它将是跨平台的。我已成功创建并运行“Hello World”Avalonia 应用程序。但是,每当我添加对类库的任何引用时(即使我创建了一个新的 NET 标准类库,它只不过是 VS 创建的存根模板),我会收到运行时错误:

System.IO.FileNotFoundException: 'Could not load file or assembly 'xxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.'

最终,我意识到 Visual Studio 没有将适当的条目添加到 deps.json。我添加到我的应用程序的任何项目引用,这些引用都不会出现在 deps.json 中。如果我构建,我可以手动添加它们 - 即

  ,
  "ClassLibrary1/1.0.0": 
    "runtime": 
      "ClassLibrary1.dll": 
    

...然后它启动就好了。但是如果我重建,VS当然会重新生成deps.json,而那些项目引用又会丢失。

为什么 VS 不能正确地将引用的项目添加到它生成的 deps.json 中?

【问题讨论】:

【参考方案1】:

解决方案是清除 nuget 的缓存(出于某种原因)...

    工具 -> NuGet 包管理器 -> 包管理器控制台,键入 dotnet nuget locals all --clear 清洁解决方案 从所有项目中删除 obj 文件夹 重建

...然后 VS 开始生成正确的、正常工作的 deps.json。

【讨论】:

这花了我几个小时才弄清楚发生了什么。我想强调必须删除 OBJ 文件夹并运行 dotnet restore - 在清除缓存之后。谢谢@Metal450 我遇到了同样的问题,只用dotnet restore 修复了它,然后全部重建。无需删除任何文件夹。

以上是关于Visual Studio 2019 未将引用的项目添加到 deps.json的主要内容,如果未能解决你的问题,请参考以下文章