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

C#控制台项目用Strawberry Shake构建时遇JSON重复键错误求助

问题描述

我在C# .NET 6控制台项目中遵循Strawberry Shake v13教程完成所有步骤后,执行dotnet build时构建失败,报错信息如下:

EXEC : error GQL: An item with the same key has already been added. Key: JSON [D:\HTH\GraphQL\StrawberryShake_Graphql_client\GraphqlStrawberry\GraphqlStrawberry\GraphqlStrawberry.csproj]
C:\Users\Faizan Khan.nuget\packages\strawberryshake.server\13.0.5\build\StrawberryShake.Server.targets(63,5): error MSB3073: The command "dotnet "C:\Users\Faizan Khan.nuget\packages\strawberryshake.server\13.0.5\build..\tools\net6\dotnet-graphql.dll" generate "D:\HTH\GraphQL\StrawberryShake_Graphql_client\GraphqlStrawberry\GraphqlStrawberry" -o "D:\HTH\GraphQL\StrawberryShake_Graphql_client\GraphqlStrawberry\GraphqlStrawberry\obj\Debug\net6.0\berry" -n GraphqlStrawberry -a md5 -t" exited with code 1. [D:\HTH\GraphQL\StrawberryShake_Graphql_client\GraphqlStrawberry\GraphqlStrawberry\GraphqlStrawberry.csproj]
构建失败。
重复报错:EXEC : error GQL: An item with the same key has already been added. Key: JSON [D:\HTH\GraphQL\StrawberryShake_Graphql_client\GraphqlStrawberry\GraphqlStrawberry\GraphqlStrawberry.csproj]
C:\Users\Faizan Khan.nuget\packages\strawberryshake.server\13.0.5\build\StrawberryShake.Server.targets(63,5): error MSB3073: The command "dotnet "C:\Users\Faizan Khan.nuget\packages\strawberryshake.server\13.0.5\build..\tools\net6\dotnet-graphql.dll" generate "D:\HTH\GraphQL\StrawberryShake_Graphql_client\GraphqlStrawberry\GraphqlStrawberry" -o "D:\HTH\GraphQL\StrawberryShake_Graphql_client\GraphqlStrawberry\GraphqlStrawberry\obj\Debug\net6.0\berry" -n GraphqlStrawberry -a md5 -t" exited with code 1. [D:\HTH\GraphQL\StrawberryShake_Graphql_client\GraphqlStrawberry\GraphqlStrawberry\GraphqlStrawberry.csproj]
0条警告,2条错误

我的操作步骤:

  • 创建.NET 6控制台项目
  • 执行dotnet new tool-manifest
  • 执行dotnet add Demo package StrawberryShake.Server
  • 执行dotnet graphql init https://web.com/graphql/ -n ConferenceClient -p ./Demo
  • 在json文件中添加命名空间
  • 编写查询语句
  • 执行dotnet build后触发上述错误
解决方案

这个错误通常是Strawberry Shake生成器遇到重复的JSON类型配置、重复定义或导入导致的,可尝试以下方案:

1. 清理重建

  • 删除项目目录下的obj和bin文件夹
  • 执行dotnet clean命令
  • 重新执行dotnet build

2. 检查GraphQL配置文件

  • 打开项目中的.graphqlrc.json配置文件,排查是否存在重复的JSON类型定义、重复的导入语句或客户端配置
  • 确保配置内的命名空间、客户端名称没有重复

3. 检查查询文件

  • 查看编写的.graphql查询文件,确认没有重复的片段定义、字段别名,或重复引用同一类型的情况
  • 保证所有查询、突变、订阅的定义唯一

4. 更新Strawberry Shake版本

当前使用的13.0.5版本可能存在已知bug,尝试更新到最新稳定版:

dotnet add package StrawberryShake.Server --version <最新稳定版本号>

同时更新工具:

dotnet tool update StrawberryShake.Tools

5. 检查项目文件

  • 打开.csproj文件,确认没有重复添加Strawberry Shake相关的包引用或生成目标
  • 确保<PackageReference>中没有重复指向StrawberryShake.Server的条目

内容的提问来源于stack exchange,提问作者Muhammad Faizan Khan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:17:51