.NET Standard 2项目生成服务引用遇依赖报错的解决方法
解决.NET Standard 2项目添加连接服务时的Unsafe版本兼容问题
方案1:锁定兼容版本的Unsafe包
在你的.NET Standard 2项目的.csproj文件中,直接添加对System.Runtime.CompilerServices.Unsafe的引用并锁定到支持netcoreapp2.0的最高版本(如5.0.0),避免工具自动拉取不兼容的6.0.0版本:
<ItemGroup> <PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="5.0.0" /> </ItemGroup>
添加后重新尝试添加连接服务即可。
方案2:修改连接服务的临时项目目标框架
在Visual Studio的连接服务配置中,调整临时生成的引导项目框架版本:
- 右键项目 → 管理连接服务 → 选中要添加的WCF服务 → 点击「高级」按钮
- 在配置窗口中,将「目标框架」改为
netcoreapp3.1或更高版本(如net6.0) - 保存配置后重新生成服务
方案3:手动生成WCF客户端代码
绕过可视化工具,用svcutil命令行生成代码:
- 打开.NET CLI命令行(确保安装.NET 7 SDK)
- 执行命令替换服务地址和输出路径:
svcutil https://your-service-url/Service.svc /out:GeneratedServiceClient.cs /target:code /dotnet
- 将生成的
.cs文件添加到.NET Standard 2项目 - 手动添加兼容的WCF NuGet包,如
System.ServiceModel.Http、System.ServiceModel.Primitives,选择支持.NET Standard 2的版本
内容的提问来源于stack exchange,提问作者geoff swartz
相关产品推荐
相关产品推荐

