【问题标题】:Reference Error TFS & Nuget参考错误 TFS 和 Nuget
【发布时间】:2012-06-29 11:25:49
【问题描述】:
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 实践的好文章,您可以推荐。

【问题讨论】:

    标签: c# reference tfs nuget


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

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

      在 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”键转到其属性窗口。如果“Copy Local”设置为“False”,点击“False”,将其更改为“True”。

      这解决了我的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-15
        • 2016-05-01
        • 2018-02-02
        • 2016-08-23
        相关资源
        最近更新 更多