You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2017升级后新建Xamarin.Forms项目出现CS0518等异常错误

解决VS 2017 v15.7.2升级后Xamarin.Forms项目CS0518错误的方案

我之前踩过几乎一模一样的坑,给你几个亲测有效的解决思路:

1. 彻底清理NuGet缓存并手动修复项目文件

这是最常见的解决路径,NuGet缓存的旧包经常会导致版本冲突:

  • 先关闭Visual Studio,删除解决方案根目录下的packages文件夹,再删掉每个项目里的bin和obj目录(这些都是编译临时文件,删除后不会影响项目本身)
  • 重新打开VS,依次点击「工具」→「选项」→「NuGet包管理器」→「常规」,点击「清空所有NuGet缓存」按钮
  • 右键共享项目选择「卸载项目」,接着右键卸载后的项目选择「编辑XX.csproj」,找到<PackageReference Include="NETStandard.Library" Version="2.0.1" />这一行,把版本号改成2.0.3,保存后重新加载项目,再尝试编译

2. 检查并匹配.NET Core SDK版本

VS 2017 v15.7.x对.NET Core SDK版本有特定要求,版本不匹配会导致NETStandard包识别异常:

  • 打开命令提示符,输入dotnet --version查看当前安装的SDK版本
  • 如果版本低于2.1.x,打开VS安装程序选择「修改」,在「单个组件」里找到对应的.NET Core SDK(比如2.1.500及以上版本)完成安装,重启VS后再测试

3. 重置VS项目模板(解决新建项目默认用旧版本的问题)

如果新建项目默认还是绑定NETStandard.Library 2.0.1,大概率是VS的项目模板出了问题:

  • 以管理员身份打开「Visual Studio 2017 开发者命令提示符」
  • 依次运行以下两个命令:
    devenv /installvstemplates
    devenv /resetuserdata
    
    注意:devenv /resetuserdata会重置你的VS用户自定义设置(比如布局、快捷键等),如果有重要的自定义配置,建议先备份再执行

问题本质说明

这个错误的核心是VS升级后,项目模板里的NETStandard包版本没有同步更新,再加上NuGet缓存的旧包和新项目的包版本冲突,导致共享项目无法正常识别最新的NETStandard库,进而引发System.Void这类预定义类型找不到的编译错误。

内容的提问来源于stack exchange,提问作者Donna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:43:20