我已经在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?
解决方案是清除nuget的缓存(出于某种原因)...
...然后VS开始生成正确的,有效的deps.json。