Visual Studio 2019 16.11下netstandard 2.1项目无法更新创建WCF服务引用
解决VS中.NET Standard 2.1项目无法更新WCF服务引用问题
问题根因说明
该问题是Visual Studio 17.4+版本的已知兼容性BUG,发生在包含Xamarin Android项目的解决方案中,VS内置服务引用管理器无法正确识别.NET Standard 2.1项目的WCF引用配置,符合旧版本VS可用、近期升级后出现异常的特征。
可用修复方案
方案1:临时降级Visual Studio版本
可直接安装一个月前可正常工作的VS版本,和现有版本并行安装即可,仅在需要更新服务引用时使用旧版本VS操作,不影响其他开发工作。
方案2:清除VS缓存重试
- 关闭所有打开的Visual Studio实例
- 删除解决方案根目录下的
.vs隐藏文件夹 - 删除.NET Standard项目中对应服务引用目录下的
Reference.svcmap缓存文件 - 重新打开VS尝试更新服务引用
方案3:使用dotnet-svcutil替代内置管理器(推荐长期使用)
dotnet-svcutil工具可正常生成服务引用,可将其配置为项目的固定生成逻辑,彻底规避VS版本兼容问题:
- 全局安装dotnet-svcutil工具:
dotnet tool install --global dotnet-svcutil - 右键.NET Standard项目进入属性→生成事件,在预生成事件中添加如下命令(替换为实际服务地址和命名空间配置):
dotnet-svcutil http://你的服务地址?wsdl -n "*,你的项目命名空间.服务引用名" -o Services/服务代理类文件名.cs - 后续需要更新服务时,直接重新生成项目即可自动拉取最新的服务定义生成代理类。
方案4:排查NuGet包版本冲突
- 打开解决方案的NuGet包管理界面,确认所有项目的
System.ServiceModel相关依赖包版本完全统一,避免跨项目版本冲突导致管理器加载失败 - 右键.NET Standard项目编辑项目文件,删除残留的无效WCF相关引用节点后重新尝试添加服务引用
问题相关截图



内容的提问来源于stack exchange,提问作者Nicolas Belley
相关产品推荐
相关产品推荐

