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

Visual Studio 2019 not adding referenced projects to deps.json

我有一个内置于 Visual Studio 2019 (16.4.5) 的现有 WPF 应用程序,其大部分后端通用代码都在 .NET Standard class 库中。我正在尝试启动一个新的前端,它基于 Avalonia MVVM 构建,它将是跨平台的。我已经成功创建了 & 运行 "Hello World" Avalonia 应用程序。但是,每当我添加对 class 库的任何引用时(即使我创建了一个新的 NET 标准 class 库,它只不过是 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 中?

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

  1. 工具 -> NuGet 包管理器 -> 包管理器控制台,输入 dotnet nuget locals all --clear
  2. 清洁溶液
  3. 从所有项目中删除 obj 文件夹
  4. 重建

...然后 VS 开始正常生成,正常工作 deps.json。