首页 > 解决方案 > Autofac 和 Microsoft.Bcl.AsyncInterfaces

问题描述

Visual Studio 2019 提供了一个未公布的4.700.19.56404版本Microsoft.Bcl.AsyncInterfaces

C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Bcl.AsyncInterfaces

Autofac 接受此软件包的 1.1.0 或更高版本。但是,如果我尝试将 Microsoft.Bcl.AsyncInterfaces Nuget 包更新到最新版本 (5.0.0),我会开始遇到包被解析为 4.700.19.56404 版本的问题,因为:

21>  Dependency "Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51".
21>    Resolved file path is "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Microsoft.Bcl.AsyncInterfaces.dll".
21>      Considered "C:\<repo-location>\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll",
21>        but its name "Microsoft.Bcl.AsyncInterfaces, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"
21>        didn't match the expected name "Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51".

当然,在尝试运行时,由于Microsoft.Bcl.AsyncInterfaces无法加载而出现运行时错误。

我想最明显的问题是是否有办法通过 msbuild 解决这个问题,例如,某些目标可以在构建时将依赖关系解析为 5.0.0,而不是 4.700.19.56404。

否则,我认为这可以通过让 Autofac 将其Microsoft.Bcl.AsyncInterfaces依赖关系更新为 5.0.0 而不是 1.1.0 来解决。不确定这是否可行。

标签: msbuildautofacdependency-resolution

解决方案


推荐阅读