【发布时间】:2013-03-12 14:21:16
【问题描述】:
在 Visual Studio 2012 C# 控制台应用程序中,我将“.NET Framework Target”从 4.5 降级到 4.0。安装了两个框架的 Win 7 Pro。
然后我引用一个程序集,它通过警告抱怨以下内容:
The primary reference "System.Threading.Tasks.Dataflow, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Runtime, Version=4.0.0.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 "System.Threading.Tasks.Dataflow, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
如果我此时尝试编译,则会出错,因为引用程序集的类型和命名空间不可用,就好像根本没有引用程序集一样。
“添加引用”对话框没有任何 System.Runtime 选项,但如果我手动选择 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 并引用在那里找到的 System.Runtime 程序集,警告消失了,我可以编译了。
问题:
这样强制 System.Runtime 版本是否会成为未来的潜在问题(部署)。
如果 VS 项目属性设置为以 Framework 4.0 为目标(这与以 4.0 SystemRuntime/CLR 为目标无关),为什么引用的 DLL 不选择它以及为什么手动添加对我的项目的引用解决了这个问题?
【问题讨论】:
标签: reference visual-studio-2012 target-framework