RegAsm无法使用Microsoft.Bcl.Async进行.NET 4.0程序集

使用Microsoft.Bcl.Async的.NET 4.0程序集的RegAsm失败,并显示以下消息:

 RegAsm:错误RA0000:无法加载文件或程序集 
'System.Threading.Tasks,Version = 1.5.11.0,Culture = neutral,
PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。
找到的程序集的清单定义不匹配
assembly参考。 (HRESULTexception:0x80131040)

我的程序集( MyAssembly.dll )使用最新的Microsoft.Bcl.Async NuGet包,这是项目的packages.config

       

它捆绑了System.Threading.Tasks.dll版本:2.6.6.0,它是该NuGet包的一部分。 目标系统上没有其他System.Threading.Tasks.dll (Win7 with .NET 4.0但没有.NET 4.5),GAC和其他任何地方都没有。

这是MyAssembly.dll.config ,它具有System.Threading.Tasks正确bindingRedirect元素:

                    

我的问题: RegAsm不使用MyAssembly.dll.config吗? 如何使其工作以解决bindingRedirect指令?

我提出的解决方案是黑客攻击:

  • RegAsm.exeRegAsm.exe.configC:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe复制到MyAssembly.dll所在的本地文件夹;

  • 编辑RegAsm.exe.config如下所示:

                        
  • 现在,运行RegAsm.exe /codebase MyAssembly.dll正常工作正常。

有趣的是, useLegacyV2RuntimeActivationPolicy="true"已经存在于标准RegAsm.exe.config ,但仅凭它没有帮助。

我认为这是与此处报告的相同的错误: https : //connect.microsoft.com/VisualStudio/feedback/details/789318/asyncpack-system-io-fileloadexception-could-not-load-file-or-assembly-system- threading-tasks-version-1-5-11-0 。