The type 'System.Net.Http.HttpMessageHandler' is defined in an
assembly that is not referenced. You must add a reference to assembly 'System.Net.Http,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
\Global.cs
试图开始工作的软件包是来自aspnetwebstack的Nightly Builds中的nuget的AspNetWebApi
在使用TFS Reference时遇到了一些问题,当我将nuget install-package安装到当前项目中时,所有DLL都是本地的,因为它是一个网站项目,我得到这个奇怪的消息,如果我重建整个解决方案它会顺利运行,但是当我改变CS文件中需要编译错误的最轻微的事情时,重复它自己。
你可以让nuget只用安装包dir和packages.config来安装引用吗?
想知道是否有人能解决这个问题?
或者如果你有任何关于参考文献的好文章nuget&你可以推荐的tfs实践。
答案 0 :(得分:1)
简短回答,不,如果您希望nuget正常工作,则无法删除软件包dir和配置文件。 Nuget将自定义目标添加到项目文件中,该文件读取packages.config和package文件夹并复制到bin文件夹。此外,nuget添加到项目中的dll引用使用指向packages文件夹的提示路径。如果删除packages文件夹,则引用将无法解析。
例如:
<Reference Include="Microsoft.SqlServer.Management.Sdk.Sfc, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL">
<Private>True</Private>
<HintPath>..\packages\Microsoft.SqlServer.2008R2.Smo.1.0.0\lib\net40\Microsoft.SqlServer.Management.Sdk.Sfc.dll</HintPath>
</Reference>
答案 1 :(得分:0)
我在其中一个项目中得到了完全相同的消息。
在Visual Studio 2012中,我从“Assemblies&gt; Extensions”中包含了System.Net.Http。对话框顶部的“Targeting”语句显示“.NET Framework 4.5.1”。检查版本2.0.0.0的“System.Net.Http”。但我仍然收到此错误消息。
事实证明Visual Studio没有将此程序集复制到本地文件夹。它可能在我的机器上的某个地方抓住了其他一个版本。
以下是如何更改“复制本地”:在解决方案资源管理器中突出显示引用“System.Net.Http”,按“F4”键转到其属性窗口。如果“Copy Local”设置为“False”,请单击“False”并将其更改为“True”。
这解决了我的问题。