c# – VS2017调试元组任务时出错
使用元组任务时,我无法查看调试信息.例如.当他的命中断点时,我无法在悬停,本地窗口或监视窗口中查看任何变量.
repro只是创建一个新的WPF应用程序,添加System.ValueTuple,将此代码添加到MainWindow.xaml.cs,然后使用“return”在两行设置断点. using System.Threading.Tasks; using System.Windows; namespace WpfApp2 { public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private async void Button_Click(object sender,RoutedEventArgs e) { var task1 = TaskWithLocalDebugInfo(); var task2 = TaskWithoutLocalDebugInfo(); } private async Task<bool> TaskWithLocalDebugInfo() { var viewableInLocalWindowAndHover = true; return viewableInLocalWindowAndHover; } private async Task<(bool,bool)> TaskWithoutLocalDebugInfo() { var notViewableInLocalWindowAndHover = true; return (notViewableInLocalWindowAndHover,notViewableInLocalWindowAndHover); } } } 编辑:如果我添加不可查看的局部变量来监视,我得到:错误CS8182:预定义类型’ValueTuple`2’必须是结构. 解决方法
这是当前版本的Visual Studio 2017中的一个错误.它已经修复,将在下一季度发布.
请参阅MS员工的GitHub issue和comment,说它已修复. 与此同时,来自G00Hub对Apr 13,2017的评论:
您可以通过NuGet包管理器/管理NuGet包解决方案界面安装“预览”版本.只需从“版本:”下拉列表中选择4.3.0-preview1-24530-04,然后单击“安装”. 人们希望,在Visual Studio的下一次更新之后,不需要使用包的“预览”版本.正如前面提到的评论所指出的,不清楚为什么使用包的“预览”版本可以避免触发错误.但显然,如果可以,最好能够使用最新的“稳定”版本的包装;谁知道自“预览”版本以来发生了哪些变化,这些变化会在调试器或其他方面导致其他一些难以诊断的错误. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |