我从哪里引用缺少的程序集(System.Net.Http.Formatting)?

Posted

技术标签:

【中文标题】我从哪里引用缺少的程序集(System.Net.Http.Formatting)?【英文标题】:From where do I reference a missing assembly (System.Net.Http.Formatting)? 【发布时间】:2013-10-19 18:52:35 【问题描述】:

在我的 Visual Studio 2013 RC 项目中,我收到了这个错误消息:

"定义了类型'System.Net.Http.Formatting.MediaTypeFormatter' 在未引用的程序集中。您必须添加对 程序集'System.Net.Http.Formatting,版本=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'"

...在控制器中的"var response = " 代码行:

public HttpResponseMessage PostDelivery(Delivery delivery)

    delivery = repository.Add(delivery);
    var response = Request.CreateResponse<Delivery>(HttpStatusCode.Created, delivery);

    string uri = Url.Link("DefaultApi", new  id = delivery.Id );
    response.Headers.Location = new Uri(uri);
    return response;

在我的硬盘驱动器中搜索所需的程序集(“System.Net.Http.Formatting”),它向我显示了它存在的几个位置,但它们都在现有项目中,如下所示:

肯定还有其他可以引用 System.Net.Http.Formatting.dll 的位置!但是在哪里?

更新

在这里尝试追踪线索:http://www.nuget.org/packages/System.Net.Http.Formatting

IOW,通过选择工具 > 库包管理器 > 包管理器控制台,然后输入:

Install-Package System.Net.Http.Formatting -Version 4.0.20710

...我看到潘普洛纳的红色公牛(不是饮料)正瞪着我:

更新 2

我从这里添加了 System.Net.Http.Formatting.dll:

C:\Users\clay\My Documents\Visual Studio 2013\Projects\MvcApplication1\MvcApplication1\bin

...它现在可以按预期编译、运行和工作,但这显然是“不是首选方法”

【问题讨论】:

Could not load file or assembly 'System.Net.Http.Formatting' or one of its dependencies. The system cannot find the path specified的可能重复 你知道这个问题已经有四年了,对吧? “可能重复”是一种清理方法 - 关闭类似问题并保留最佳答案。日期不是必需的。见meta.stackexchange.com/questions/147643/…如果你同意它需要澄清,请投票meta.stackexchange.com/questions/281980/… 【参考方案1】:

我遇到了同样的问题。我使用了Microsoft Asp Net WebApi Client 4.0.20710,它对我有用。

在工具 > 库包管理器 > 包管理器控制台中键入以下命令:

Install-Package Microsoft.AspNet.WebApi.Client -Version 4.0.20710

【讨论】:

如何访问Tools &gt; Library Package Manager &gt; Package Manager Console @Elyor 请分享 真的 MS 应该为 System.Net.Http.Formatting 保留 Nuget 包,并依赖于 Microsoft.AspNet.WebApi.Client 包.. 但他们打破了 Nuget 的正常使用和导致这会导致部署和编译出错,有时会出现缺少程序集的神秘错误消息......呃...... 我看不到Microsoft.AspNet.WebApi.Client和System.Net.Http.Formatting.MediaTypeFormatter之间的链接,没有解释清楚。 在 VS 2019 中,我在 Tools > NuGet Package Manager > Package Manager Console 下找到了它,并且 Install-Package 字符串起作用了【参考方案2】:

如果您在尝试安装 System.Net.Http.Formatting -Version 4.0.20710 时遇到错误,请试试这个:

Install-Package WebApiDoodle.Net.Http.Formatting -Pre

我刚刚在 NuGet 上找到:https://www.nuget.org/packages/WebApiDoodle.Net.Http.Formatting/3.0.0-pre01

【讨论】:

当我收到安装错误时,这对我有用。谢谢!【参考方案3】:

补充 Luiz 上面的回答。

System.Net.Http.Formatting 是一个库,用于媒体类型格式化。例如: http://msdn.microsoft.com/en-us/library/system.net.http.formatting.jsonmediatypeformatter(v=vs.118).aspx

在引用它时,当我尝试时,我希望在我的项目中添加一个引用,并在 Reference Manager 的 Assemblies/Framework 文件夹中查找。

它实际上是在 Reference Manager 的 Assemblies/Extensions 文件夹中

【讨论】:

干杯,被难住了。很好的答案。 这需要更高!像魅力一样工作! 这个答案比公认的正确答案要好得多。您不需要使用 nuget 来引用它。 Reference Manager 的 Assemblies/Extensions 文件夹中没有 System.Net.Http.Formatting.dll。 这里相同 - 我在程序集/扩展中看不到它。【参考方案4】:

右键单击项目并单击添加引用选项,然后转到 ExtensionsAssemblies 选项卡并选择 System.Net.Http.Formatting。 如果这里没有,则必须手动添加 prgramme 文件-> Microsoft ASP.NET

【讨论】:

【参考方案5】:

解决此问题的另一个简单选项是右键单击引用,单击“管理 NuGet 引用”,浏览“Microsoft.AspNet.WebApi.Client”并安装它,或者重新安装它。查看包装信息以了解更多信息。

【讨论】:

以上是关于我从哪里引用缺少的程序集(System.Net.Http.Formatting)?的主要内容,如果未能解决你的问题,请参考以下文章

由于缺少未丢失的程序集引用,Visual Studio拒绝构建项目

“Microsoft”中不存在类型或命名空间名称“Office”(是否缺少程序集引用?)

CodedUI 测试因缺少程序集引用而失败?

找不到类型或命名空间名称“T”(您是不是缺少 using 指令或程序集引用?)

错误表明我缺少 using 指令或程序集引用,但我没有....

找不到类型或命名空间名称“ScriptBundle”(您是不是缺少 using 指令或程序集引用?)