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的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 发布未将所有 DLL 复制到发布文件夹
Debug.WriteLine 未将输出写入 Visual Studio 2010 中的 OutputWindows
WCF 未将所有内核与 Visual Studio 2010 负载测试一起使用