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

WCF客户端dotnet build报MSB3245、CS0246错误如何解决

修复步骤

1. 修正csproj的程序集引用配置

.NET 5属于.NET Core产品线,不再自带传统.NET Framework的System、System.ServiceModel程序集,手动添加这些引用会触发找不到程序集的警告。请修改你的TestApp.csproj:

  • 移除以下错误的程序集引用配置:
<ItemGroup>
  <Reference Include="System" />
  <Reference Include="System.ServiceModel" />
</ItemGroup>
  • 新增WCF客户端所需的NuGet包引用,在csproj中添加如下配置:
<ItemGroup>
  <PackageReference Include="System.ServiceModel.Http" Version="4.10.2" />
</ItemGroup>

版本可根据你的实际需求选择兼容.NET 5的版本。

2. 将生成的服务契约文件加入编译列表

你开启了<EnableDefaultCompileItems>false</EnableDefaultCompileItems>,意味着所有cs文件需要手动声明才会参与编译,而你目前只声明了TestApp.cs,svcutil生成的ServerServiceimpl.cs没有加入编译,所以编译器找不到ServerServiceClient类。请修改Compile对应的ItemGroup:

<ItemGroup>
  <Compile Include="TestApp.cs" />
  <Compile Include="ServerServiceimpl.cs" />
</ItemGroup>

3. 命名空间适配(可选,按需调整)

从你贴出的代码来看,svcutil生成的ServerServiceClient类没有显式声明命名空间,属于全局命名空间。如果你的TestApp.cs中无法访问该类,可以在TestApp.cs的using区域添加对应命名空间引用即可。

4. 验证修复

修改完成后,依次执行如下命令验证:

dotnet restore
dotnet build

如果仍有运行时连接问题,再检查app.config中的endpoint地址、绑定配置是否和服务端一致即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 01:06:02