dotnet 在 VS 2022 中新创建的 Maui 项目上观察错误

问题描述 投票:0回答:1

我想尝试 QuestPDF,为了启动预览器,您必须从 Developer PowerShell 运行 dotnet watch。当我尝试时,我收到了一堆错误。我还在一个新创建的 Maui 项目上尝试过它,没有添加 Nuget 包,但我仍然收到这些错误。

dotnet watch ❌ System.ArgumentNullException: Value cannot be null. (Parameter 'key')
   at System.Collections.Generic.Dictionary`2.FindValue(TKey key)
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at Microsoft.DotNet.Watcher.Tools.LaunchSettingsProfile.ReadDefaultLaunchProfile(LaunchSettingsJson launchSettings, IReporter reporter)
   at Microsoft.DotNet.Watcher.Tools.LaunchSettingsProfile.ReadLaunchProfile(String projectDirectory, String launchProfileName, IReporter reporter)
   at Microsoft.DotNet.Watcher.Program.RunAsync(CommandLineOptions options, CancellationToken cancellationToken)
   at Microsoft.DotNet.Watcher.Program.RunAsync(String[] args)
dotnet watch ❌ An unexpected error occurred

我已经更新了监视工具,安装了 dotnet 8 SDK 并更新了 Visual Studio 2022。

.net watch
1个回答
0
投票

升级到 .NET 8 后我也遇到了此错误。

tl;dr我从.NET项目中删除了

Properties/launchSettings.json
,问题就消失了


线索是堆栈跟踪中的 ReadDefaultLaunchProfile 调用。使用以前版本的 dotnet watch,我们会在日志中收到以下警告:

无法应用启动配置文件“(默认)”。

但这并没有阻止任何工作,所以我们当时没有进一步调查。

知道 dotnet watch 命令在 dotnet 8 中已被彻底重写,如果新异常与旧警告具有相同的原因,但由于 .NET 8 版本不再优雅地处理,那就有意义了重写。

所以我找到了

this SE post 关于旧的警告消息,并且该问题的解决方案提到了编辑 launchSettings.json。

当我查看项目中的Properties/launchSettings.json文件时,我发现它已经6年没有修改过,而且里面的所有内容都与IIS和IIS Express相关。我们已经很长一段时间没有使用过其中任何一个,因此我没有尝试编辑 launchSettings.json 以与 dotnet watch 一起使用,而是尝试简单地删除 launchSettings.json。之后,问题就消失了。

注意:我还删除了 Properties 目录中唯一的其他文件,Properties/PublishProfiles/FolderProfile.pubxml,因为它同样过时,但这不需要解决问题。

我不知道导致此错误的确切原因的完整细节,我也不知道此修复程序是否适用于每个人,但希望它会对某人有所帮助。


© www.soinside.com 2019 - 2024. All rights reserved.