我使用的是Windows 7 Pro x64 SP1和Visual Studio 2012 Update 4.在使用TPL Dataflow软件包和.NET 4.5.2时,无法编译我的VB.NET WPF项目。我创建了一个除了这段代码之外什么都没有的基础项目,只为x64编译:
Imports System.Threading.Tasks.Dataflow
Class MainWindow
Dim test As New System.Threading.Tasks.Dataflow.BufferBlock(Of String)
End Class
我尝试添加对System.Runtime.dll和System.Diagnostics.Tracing.dll的Facade引用没有任何效果。如果我改为.NET 4.5,它编译得很好。我必须引用4.5.2,因为项目中需要它的其他功能。
特定错误:
警告1无法解析主要参考“System.Threading.Tasks.Dataflow,Version = 4.5.23.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”,因为它对框架程序集具有间接依赖性“ System.Runtime,Version = 4.0.10.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“无法在当前目标框架中解析。 ” .NETFramework,版本= v4.5.2" 。要解决此问题,请删除引用“System.Threading.Tasks.Dataflow,Version = 4.5.23.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”或将应用程序重新定位到包含“System.Runtime”的框架版本,Version = 4.0.10.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“。 TPLDataflow4.5.2Demo
警告2主要参考“System.Threading.Tasks.Dataflow,Version = 4.5.23.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”无法解析,因为它对框架程序集具有间接依赖性“ System.Diagnostics.Tracing,Version = 4.0.10.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“无法在当前目标框架中解析。 ” .NETFramework,版本= v4.5.2" 。要解决此问题,请删除引用“System.Threading.Tasks.Dataflow,Version = 4.5.23.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”或将应用程序重新定位到包含“System.Diagnostics”的框架版本.Tracing,Version = 4.0.10.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a“。 TPLDataflow4.5.2Demo
警告3 Imports的System.Threading.Tasks.Dataflow'中指定的命名空间或类型不包含任何公共成员或无法找到。确保定义了名称空间或类型,并且至少包含一个公共成员。确保导入的元素名称不使用任何别名。 F:\ Projects \ TPLDataflow4.5.2Demo \ TPLDataflow4.5.2Demo \ MainWindow.xaml.vb 1 9 TPLDataflow4.5.2Demo
错误4类型未定义“System.Threading.Tasks.Dataflow.BufferBlock”。 F:\ Projects \ TPLDataflow4.5.2Demo \ TPLDataflow4.5.2Demo \ MainWindow.xaml.vb 4 21 TPLDataflow4.5.2Demo
解决方案:
事实证明我使用的Microsoft .NET Framework 4.5.2开发人员包有一个不能让PCL正确编译的错误。
我从http://support.microsoft.com/kb/2901951下载并安装了Microsoft .NET Framework 4.5.2 Developer Pack的更新版本,我的应用程序能够正确编译。
答案 0 :(得分:2)
connect上有一张票据,指明使用.NET 4.5.2和PCL库导致构建失败。
这已在Microsoft .NET Framework 4.5.2 Developer Pack
中修复当您重新编译使用.NET可移植库来定位Microsoft .NET Framework 4.5.2的Microsoft .NET Framework 4.5.1应用程序时,在编译期间会收到以下错误消息:
类型“{type}”在未引用的程序集中定义。您必须添加对程序集“{assembly}”
的引用