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

.NET 6项目Azure Pipeline构建失败,报StrawberryShake相关错误

解决StrawberryShake 12.18.0在Azure Pipeline构建失败的问题

问题核心分析

这两个错误本质是依赖版本不匹配或者Azure Pipeline环境中StrawberryShake工具与项目引用的库版本不一致导致的:

  • SS0006错误:构建过程中使用的StrawberryShake代码生成工具版本,和项目依赖的StrawberryShake.CodeGeneration.CSharp库版本不兼容,找不到对应的RequestStrategy设置方法。
  • CS0246错误:是代码生成失败的连锁反应——代码生成工具未正常工作,本该生成的IGraphQLClient接口不存在,进而引发编译报错。

具体解决方案

1. 强制统一StrawberryShake所有相关包版本

确保项目中所有StrawberryShake相关NuGet包(工具包、类库)都明确指定为12.18.0版本,避免隐式依赖导致版本冲突。在项目文件(.csproj)中添加全局版本属性或直接给每个包指定版本:

<PropertyGroup>
  <StrawberryShakeVersion>12.18.0</StrawberryShakeVersion>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="StrawberryShake" Version="$(StrawberryShakeVersion)" />
  <PackageReference Include="StrawberryShake.CodeGeneration.CSharp" Version="$(StrawberryShakeVersion)" PrivateAssets="all" />
  <PackageReference Include="StrawberryShake.Tools" Version="$(StrawberryShakeVersion)" PrivateAssets="all" />
</ItemGroup>

2. 在Azure Pipeline中指定.NET 6 SDK版本

确保Pipeline使用的.NET SDK版本和本地一致,消除环境差异。在Pipeline的YAML文件中添加:

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '6.x'
    includePreviewVersions: false

3. 清理Azure Pipeline的NuGet缓存

缓存的旧版本依赖可能引发冲突,在构建前添加清理缓存步骤:

steps:
- task: NuGetCommand@2
  inputs:
    command: 'custom'
    arguments: 'locals all -clear'

4. 确保StrawberryShake工具在Pipeline中正确还原

构建前执行dotnet restore,保证工具包被正确安装:

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'restore'
    projects: '**/*.csproj'
    feedsToUse: 'select'

5. 检查Pipeline中的构建命令

使用dotnet build命令并指定正确配置,避免忽略代码生成步骤:

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/*.csproj'
    arguments: '--configuration Release --no-restore'

验证步骤

  1. 本地依次执行dotnet clean、dotnet restore、dotnet build,确认本地仍可正常构建。
  2. 推送修改后的项目文件和Pipeline配置到仓库,重新触发Azure Pipeline构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:27:13