VS2017更新后新建Xamarin.Forms项目出现System命名空间错误
听起来你遇到的问题是VS2017和Win10更新后,新项目的.NET Standard版本不一致导致IDE智能感知炸锅了——这种版本不兼容的问题在VS更新后确实挺常见的,我给你一套一步步的解决方案,应该能搞定:
第一步:彻底卸载所有项目的NETStandard.Library包
打开解决方案的NuGet包管理器(右键解决方案→管理解决方案的NuGet程序包),找到NETStandard.Library,在每个项目(共享项目、Android、iOS、UWP)的标签页里选择卸载,确认移除所有相关引用。这样能避免残留的旧版本干扰。第二步:清理缓存和残留文件
先在VS里执行「生成→清理解决方案」,然后手动删除每个项目目录下的obj和bin文件夹(这些是编译缓存,有时候清理解决方案不会完全删掉),最后还要删除解决方案根目录下的隐藏.vs文件夹(VS的配置缓存,删了不会影响项目,只会重置VS对这个解决方案的配置)。第三步:统一安装NETStandard.Library 2.0.3到所有项目
回到NuGet包管理器,搜索NETStandard.Library,选择2.0.3版本,然后勾选所有项目(一定要全选,确保共享项目和各个平台项目用同一个版本),点击安装。安装过程中如果出现依赖提示,直接确认接受即可。第四步:检查并修正项目文件配置
右键共享项目→编辑.csproj文件,确认里面的配置:<TargetFramework>netstandard2.0</TargetFramework> <PackageReference Include="NETStandard.Library" Version="2.0.3" />如果有旧的版本号或者错误的TargetFramework,手动修改成上面的内容,保存后重新加载项目。
第五步:重置VS智能感知缓存
打开VS的「工具→选项→文本编辑器→C#→高级」,找到「重新设置所有C#智能感知缓存」选项,点击重置。然后重启VS,重新打开解决方案,等智能感知重新加载完成,看看标红错误是不是消失了。额外建议:更新Xamarin.Forms到兼容版本
有时候旧版本的Xamarin.Forms和NETStandard2.0.3存在兼容性问题,你可以顺便把Xamarin.Forms更新到最新的稳定版本(同样要确保所有项目的Xamarin.Forms版本一致),这能进一步避免类似的版本冲突问题。
内容的提问来源于stack exchange,提问作者Donna

