VS2017创建的项目在VS2019编译报错CS1061求助
我之前也碰到过从VS2017迁移项目到VS2019时出现这类事件绑定报错的情况,结合你描述的细节——旧事件找不到但新事件能正常添加、VS2017下运行正常,大概率是项目升级后的缓存或文件关联问题,试试下面这些方案:
彻底清理项目缓存后重建
单纯的重新生成有时候清不干净旧缓存,建议按这个步骤来:- 关闭VS2019
- 删除项目目录下的
bin和obj文件夹 - 删除解决方案根目录下的
.vs隐藏文件夹(这是VS的核心缓存目录) - 重新打开VS,先执行清理解决方案,再执行重建解决方案
这个操作能解决绝大多数由缓存残留导致的假报错。
检查XAML与代码隐藏的类关联
打开你的MainWindow.xaml,确认根元素的x:Class属性值和MainWindow.xaml.cs里的命名空间+类名完全一致,比如你的C#类是namespace VPNTool.MainWindow,那XAML里必须写x:Class="VPNTool.MainWindow",注意大小写和命名空间层级——VS2019对这个的校验比2017更严格,哪怕一个字母大小写不对都可能导致事件绑定失效。卸载并重新加载项目
在VS2019的解决方案资源管理器里:- 右键报错的项目,选择卸载项目
- 右键已经卸载的项目,选择重新加载项目
这个操作会让VS重新解析项目的所有文件关联,很多时候XAML和代码隐藏的绑定关系在版本升级后会莫名失效,重新加载就能修复。
核对事件处理程序的签名
虽然你贴的代码里签名看起来没问题,但还是要确认报错的事件方法(比如ConnectRDP_Clicked)的参数是object sender, RoutedEventArgs e,返回值是void,而且访问修饰符是private或更高(public/protected都可以,只要XAML能访问到)。对比一下能正常识别的Connect_Clicked的签名,确保没有拼写错误或者参数类型不匹配。检查目标框架与SDK安装
右键项目→属性→应用程序,查看目标框架版本,确认VS2019已经安装了对应的.NET Framework SDK。如果原来用的是较老的版本(比如4.6),可以尝试升级到4.7.2或更高的兼容版本,有时候框架版本的兼容性问题也会引发这类绑定错误。
从你“添加新事件能正常生成到代码中”的情况来看,前三个方案应该就能解决问题,优先试试清理缓存和重新加载项目。
内容的提问来源于stack exchange,提问作者tommylogon




