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 来解决。不确定这是否可行。