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

为何VSTS NuGet源重复安装同包报错?Azure Durable API测试问题

Hey,我正好处理过类似的场景,给你拆解两个问题的解决方案:

解决.NET Framework测试项目引用netstandard2.0 Contracts类库的问题

SpecFlow目前对.NET Core的支持确实有限,所以你用.NET Framework测试项目的思路是对的。要顺利引用netstandard2.0的Contracts类库,关键是做好版本兼容和配置:

  • 第一步:确认测试项目的目标框架
    把你的SpecFlow测试项目目标框架改成至少.NET Framework 4.6.1——这个版本及以上才完全支持netstandard2.0,低于这个版本会出现兼容性问题。

  • 两种引用方式任选其一:

    1. 直接关联项目(适合本地开发场景)
      如果两个解决方案在同一台机器上,直接在测试解决方案里添加现有项目:右键测试解决方案 →「添加」→「现有项目」,找到主解决方案里的Contracts类库(.csproj文件),添加完成后右键测试项目→「添加引用」,勾选Contracts项目即可。
    2. NuGet包引用(适合独立测试环境)
      把Contracts类库打包成NuGet包,发布到你的VSTS(Azure DevOps)Artifacts源。然后在测试项目中安装这个包即可。如果遇到兼容性警告,别慌,只要测试项目是4.6.1+的框架,一般都是可以正常使用的。
  • 万一遇到编译错误?
    可以在测试项目的app.config或web.config里添加以下绑定重定向配置,帮助.NET Framework正确识别netstandard的依赖:

    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-4.2.2.0" newVersion="4.2.2.0" />
        </dependentAssembly>
        <dependentAssembly>
          <assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    
解决VSTS NuGet源重复安装包报错的问题

这个问题大多是本地缓存混乱、源配置重复或者版本冲突搞出来的,试试下面的步骤排查:

  • 先清本地缓存:
    打开命令行跑 dotnet nuget locals all --clear,或者在Visual Studio里走「工具」→「选项」→「NuGet包管理器」→「常规」,点击「清除所有NuGet缓存」,把旧的缓存清干净。

  • 检查包源配置:
    进入「工具」→「选项」→「NuGet包管理器」→「包源」,看看是不是重复添加了同一个VSTS源?如果有,删掉多余的,只留一个正确的源。

  • 切换到PackageReference格式:
    如果你的测试项目还在用packages.config,强烈建议迁移到PackageReference——右键packages.config文件,选择「迁移到PackageReference」。这种格式的依赖管理更清晰,能减少很多重复安装的坑。

  • 锁定包版本:
    在NuGet包管理器里,给Contracts包设置固定版本,别用浮动版本(比如1.*),避免每次安装时拉取不同版本导致冲突。

  • 检查VSTS源里的包:
    登录Azure DevOps,进入「Artifacts」→你的NuGet源,搜索Contracts包,看看是不是有重复的版本或者损坏的包?如果有,删掉多余的版本,重新发布一个干净的包。

如果还是不行,试试在Package Manager Console里指定版本安装,比如:
Install-Package YourContractsPackageName -Version 1.0.0 -Source "你的VSTS源名称"


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:25:40