引用错误 TFS 和 Nuget

3
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引用方面遇到了些麻烦,当我对当前项目进行nuget install-package安装,并且所有DLL都在本地位置(因为它是一个网站项目)时,我会收到这个奇怪的消息,如果我重新构建整个解决方案,它将平稳运行,但是当我更改需要编译的CS文件中最微小的东西时,错误会重复出现。
你能否使nuget仅安装引用而不是package dir和packages.config?
想知道是否有人有解决这个问题的方法?
或者如果您有任何关于引用 nuget 和 TFS 实践的好文章可以推荐。
2个回答

1
简短回答,不可以删除packages目录和配置文件,如果您想让nuget正常工作。 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>

0

我在我的一个项目中也收到了完全相同的消息。

在Visual Studio 2012中,我从“程序集>扩展”中包含了System.Net.Http。对话框顶部的“目标”语句显示“.NET Framework 4.5.1”。版本为2.0.0.0的“System.Net.Http”已被选中。但我仍然收到这个错误消息。

事实证明,Visual Studio没有将此程序集复制到本地文件夹中。它可能会从我的机器上的其他某个版本中获取其中之一。

以下是如何更改“复制本地”:在解决方案资源管理器中突出显示引用“System.Net.Http”,按“F4”键进入其属性窗口。如果“复制本地”设置为“False”,请单击“False”并将其更改为“True”。

这为我解决了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接