“系统找不到指定的文件”用于与我指定的文件不同的文件

时间:2018-01-03 23:25:36

标签: c# .net visual-studio msbuild nuget

在我的csproj中我有

<Reference Include="System.Net.Http.Formatting, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Client.5.2.3\lib\net45\System.Net.Http.Formatting.dll</HintPath>
  <Private>True</Private>
</Reference>

当我对该程序集中的类运行单元测试时,我得到了

  

System.IO.FileNotFoundException:无法加载文件或程序集   'System.Net.Http.Formatting,Version = 5.2.2.0,Culture = neutral,   PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。该   系统找不到指定的文件。

知道为什么会出现这种错配吗?

1 个答案:

答案 0 :(得分:4)

请注意,异常表示缺少的版本是5.2.2.0,而您引用的是5.2.3.0

您可能有另一个引用5.2.2.0的依赖项。 您可以将重定向作为app.config文件添加到测试项目中,目标是更高版本:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>