VS 2012从框架中获取System.Net.Http.dll而在引用时不是NuGet版本?

时间:2013-02-04 04:48:20

标签: reference visual-studio-2012 assemblies asp.net-web-api

我在Visual Studio 2012 Windows 7桌面应用程序中使用Microsoft ASP.NET Web API。我于2013年1月25日从Nuget下载了它们。

我手动引用项目中的DLL,但是当添加对这两个文件的引用:System.Net.Http.dll和System.Net.Http.WebRequest.dll时,visual studio似乎覆盖了这个并采取了它们来自文件夹C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.5 \ System.Net.Http.dll而不是我指定的文件夹C:\ MyFolder \ System.Net.Http。 dll?

我知道这一点,因为我查看了“属性”页面中的文件路径。所有其他文件都可以正常工作。这让我感到困扰,因为它们的文件大小完全不同等等。

为什么要这样做?

作为解决方法,我想我可以将'Copy Local'属性设置为'True'(看起来这些文件然后从.NET 4.5 Framework文件夹复制到我的可执行文件的输出文件夹中),然后我可以手动复制 - 用nuget中的新替换它们,但这看起来很长,但仍然让我感到困惑,为什么我需要这样做?

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

System.Net.Http程序集(以及其他一些程序集)具有强名称,这意味着VS将始终从GAC加载它,只要它与参考版本号相同。

您可以在此处详细了解绑定过程:http://msdn.microsoft.com/en-us/library/yx7xezcf.aspx