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

Met*_*450 5 .net c# visual-studio .net-core .net-standard

我有一个在 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.'
Run Code Online (Sandbox Code Playgroud)

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

  },
  "ClassLibrary1/1.0.0": {
    "runtime": {
      "ClassLibrary1.dll": {}
    }
Run Code Online (Sandbox Code Playgroud)

...然后它就可以正常启动了。但是如果我重建,VS 当然会重新生成 deps.json,并且那些项目引用将再次丢失。

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

Met*_*450 1

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

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

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