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只安装没有包目录和packages.config的引用吗?

想知道是否有人有解决这个问题的方法?

或者,如果您有任何关于参考 nuget 和 tfs 实践的好文章,您可以推荐。

4

2 回答 2

1

简短的回答,不,如果你想让 nuget 正常工作,你不能删除包目录和配置文件。Nuget 将自定义目标添加到您的项目文件中,该文件读取 packages.config 和包文件夹并复制到您的 bin 文件夹。此外,nuget 添加到项目中的 dll 引用使用指向包文件夹的提示路径。如果您删除 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>
于 2012-10-03T13:28:41.323 回答
0

我在我的一个项目中得到了完全相同的信息。

在 Visual Studio 2012 中,我从“程序集 > 扩展”中包含了 System.Net.Http。对话框顶部的“Targeting”语句显示“.NET Framework 4.5.1”。检查版本 2.0.0.0 的“System.Net.Http”。但是我仍然收到此错误消息。

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

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

这解决了我的问题。

于 2013-09-05T05:34:01.883 回答