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

TFS 2015构建System.Net.Http版本冲突问题求助

解决TFS 2015 Build中System.Net.Http版本冲突问题

我之前也遇到过类似的TFS构建依赖版本冲突问题,结合你的场景,给你几个经过验证的解决方案:

1. 手动添加绑定重定向配置

这是最常用的解决思路,构建服务器经常会因为自动绑定重定向失效,导致优先加载框架自带的旧版本DLL。在你的类库项目的app.config(Web项目则是web.config)中添加以下配置,强制将所有对旧版本System.Net.Http的请求重定向到你安装的NuGet版本:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.1.2" newVersion="4.1.1.2" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

2. 确认项目文件引用的正确性

打开你的类库项目的.csproj文件,找到System.Net.Http的引用节点,确保它指向NuGet包的本地路径,并且开启了SpecificVersion和Private(复制本地)属性:

<Reference Include="System.Net.Http, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <HintPath>..\packages\System.Net.Http.4.3.3\lib\net46\System.Net.Http.dll</HintPath>
  <SpecificVersion>True</SpecificVersion>
  <Private>True</Private>
</Reference>

如果这里的HintPath指向系统目录(比如C:\Windows\Microsoft.NET\...),说明你实际引用的是框架自带版本,需要改成NuGet包的路径。

3. 确保TFS构建执行NuGet还原

TFS 2015默认可能不会自动还原NuGet包,你需要在构建定义中添加NuGet Installer步骤:

  • 在构建定义的「构建步骤」里,添加「NuGet Installer」任务
  • 设置「解决方案路径」为你的项目或解决方案文件路径
  • 确认「包源」包含NuGet官方源或你使用的私有源,保证构建服务器能下载到4.3.3版本的System.Net.Http

4. 禁用自动绑定重定向(按需)

如果VS自动生成的绑定重定向出现异常,可以在项目文件中禁用自动生成,手动维护重定向配置:

<PropertyGroup>
  <AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
</PropertyGroup>

5. 检查复制本地设置

确保项目中System.Net.Http的「复制本地」属性设为True(对应.csproj里的<Private>True</Private>),这样构建时会把NuGet版本的DLL复制到输出目录,避免构建服务器加载GAC中的旧版本。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:32:27