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

问题描述 投票:-1回答:1

在我的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'或其依赖项之一。该系统找不到指定的文件。

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

c# .net visual-studio msbuild nuget
1个回答
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>
© www.soinside.com 2019 - 2024. All rights reserved.