- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我使用 Microsoft.Bcl.Async
package在一个项目中,并且该项目被另一个不使用异步功能的项目引用。
现在我在编译解决方案(或仅编译第二个项目)时收到此错误警告:
The primary reference "XYZ.dll" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.0". To resolve this problem, either remove the reference "XYZ.dll" or retarget your application to a framework version which contains "System.Runtime, Version=1.5.11.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
我在这两个项目中都使用了这个 app.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:bcl="urn:schemas-microsoft-com:bcl">
<dependentAssembly bcl:name="System.Runtime">
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.16.0" newVersion="2.5.16.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.5.16.0" newVersion="2.5.16.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
我做错了什么?
我不想引用异步包 dll。
我无法使用 .Net 4.5 目标。必须是 .Net 4。
所有项目的目标框架:.NET Framework 4
最佳答案
总结:
有几个解决方法可供您使用:
将 Microsoft.Bcl.Async 包安装到引用项目。
将 Microsoft.Bcl.Build 包安装到引用项目。这包含实际的修复,并且只是一个构建时依赖项。执行此操作时,您必须在项目的 App.Config 中进行适当的绑定(bind)重定向(例如上面列出的内容)- 无论它是类库、Web 项目还是可执行文件。
<如果您不想依赖任何包,请在 Microsoft.Bcl.targets 文件(随 Microsoft.Bcl.Build 一起安装)中获取 PropertyGroup 元素的内容,并将其插入到在最后一个 Import 元素之后引用项目。
注意:无论您在上面选择了哪个选项,当您运送依赖于 Microsoft.Bcl.Async 的库(与旧的 Microsoft.CompilerServices.AsyncTargetingPack 一样)时,您必须运送那些二进制文件(System.Runtime、System.Threading.Tasks、Microsoft.Threading.Tasks.*)与使用您的库的应用程序/包。
说来话长:
正如 Peter 指出的那样,这是一个已知问题,由于它们的设计方式,它只发生在 Microsoft.Bcl.Async 而不是 Microsoft.CompilerServices.AsyncTargetingPack。
Microsoft.Bcl.Async 的部分设计是向后移植(通过 NuGet 包)一些新的 .NET 4.5 程序集(System.Runtime、System.Threading.Tasks),以便它们可以在 4.0 上运行。 MSBuild 不喜欢这样,它会导致它认为引用库已经依赖于来自较新框架版本的程序集。 Microsoft.Bcl.Build 包中的解决方法解决了这个问题。
关于c# - 如何正确使用Microsoft.Bcl.Async?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15551953/
.NET 基类库中是否有完整构建器模式的示例?我正在寻找具有实际导演和多个具体 build 者的东西。 最佳答案 我远非这方面的专家,但我认为 DbCommandBuilder及其继承类( OdbcC
在 F# 中,您可以定义一个 first功能如下: let first (x, y) = x 你可以这样称呼它: first (1, 2) 您还可以根据 BCL Tuple 定义相同的函数类型: le
4.5 霍夫曼压缩 Syntax: outsize = Huffman_Compress(in,out,insize) outsize Size of output buffer after comp
如果我有一个类,例如 T1,我想知道它正在使用 BCL 中的哪些类,我该怎么做? 我想到了这个: T1.GetType().GetMethods().Where(x => x.DeclaringTy
在过去,我们可以使用大括号方便地初始化可变集合,如下例所示: var myDictionary = new Dictionary {{"hello", 0m}, {"world", 1m}}; 是否有
代码契约工作得很好,直到你必须为来自框架代码的结果添加无数的Contract.Assume(...)。例如,MemoryStream.ToArray() 从不返回 null 数组,正如我在 Refle
我使用 Microsoft.Bcl.Async package在一个项目中,并且该项目被另一个不使用异步功能的项目引用。 现在我在编译解决方案(或仅编译第二个项目)时收到此错误警告: The prim
好像是 System.Diagnostics.Debug , 和 System.Diagnostics.Trace 大致相同,但值得注意的异常(exception)是 Debug 用法是在发布配置中编
以下是 FSI 中的内容: > System.Math.Round(0.2916, 2);; val it : float = 0.29 > it * 100.;; val it : float =
一些 .net 理论问题:哪些库实际上是标准化的?我知道有一个通用类型系统,它指定了诸如 32 位整数和所有这些低级信息之类的东西,但我对通用语言规范和基类库的状态/关系感到困惑。 系统中有一些基本类
我需要清楚地了解类库。 Base Class Libraries 和 Framework Class Libraries 都属于命名空间——我的意思是我们可以称它们都是命名空间吗?如果不是,我们可以将
比如 Point、Size 等值类型。 我还听说 .NET 中的字符串并非真正不可变。 F# 是否使用这些或它们的替代不可变版本? 如果它使用标准的可变 BCL 类型,这不会损害 F# 在编译和运行时
有什么方法可以知道 .NET 预定义方法的确切时间复杂度。就像我想知道 的复杂性一样 String.Contains() 或 Hashtable.ContainsKey() Microsoft 是否
Microsoft.Bcl.Async 使开发人员能够在没有 .NET Framework 4.5 的情况下使用 async/await 关键字,他们应该以使用它们为目标。 太好了,这要感谢 Micr
我清楚地记得 C# 的 SSE 增强向量的发布,我知道我们不久前才对它们进行了一些测试。现在,它们似乎从互联网上消失了。 2014 年的 NuGet 包仍然存在,但已除名: The owner has
什么是 Microsoft.Bcl.Async 及其用途? 我读过the package page那: This package enables Visual Studio 2012 projects
为什么 BCL 中没有 AutoResetEventSlim 类? 可以用ManualResetEventSlim模拟吗? 最佳答案 ManualResetEvent 和 ManualResetEve
为什么 .NET 基类库没有 CPR 类? 最佳答案 Eric Lippert 对“为什么未实现功能 X”有最好的解释(我认为他知道一两件关于为什么或为什么没有用语言实现的事情) I am asked
BCL 和 CLR(以后只使用 CLR)中的所有 .NET 程序集都是 strongly named and digitally signed .提供数字证书是为了确保程序集未被篡改或更换的信任度。但
我想调试 [MethodImpl(MethodImplOptions.InternalCall)] BCL 方法的实现,该方法可能是用 C++ 实现的。 (在本例中,我正在查看 System.Stri
我是一名优秀的程序员,十分优秀!