参考错误TFS&的NuGet

时间:2012-06-29 11:25:49

标签: c# reference tfs nuget

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实践。

2 个答案:

答案 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”。

这解决了我的问题。