首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到System.Net.Http 4.2.0.0的奇怪问题

找不到System.Net.Http 4.2.0.0的奇怪问题
EN

Stack Overflow用户
提问于 2017-11-30 18:15:41
回答 18查看 95.5K关注 0票数 137

我有一个奇怪的问题,这让我抓狂…

我有一个简单的类库项目(完整的.NET框架,4.6.1)与围绕Cosmos DB的功能包装器类。因此,我将“Microsoft.Azure.DocumentDB”NuGet包1.19.1添加到此项目中。除此之外,我还提到了“Newtonsoft.Json”NuGet包10.0.3,以及几个"Microsoft.Diagnostics.EventFlow“。*“NuGet包。

到目前为止,一切编译都没有任何错误。

但只要我点击我的包装器类-从一个简单的服务结构无状态服务(完整的.NET框架4.6.1)消费-并尝试执行以下代码行:

代码语言:javascript
运行
复制
_docClient = new DocumentClient(new Uri(cosmosDbEndpointUrl), cosmosDbAuthKey);

我在运行时收到这个奇怪的错误:

System.IO.FileNotFoundException发生HResult=0x80070002

Message=Could不加载文件或程序集“”System.Net.Http,Version=4.2.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a“”或其依赖项之一。“”系统找不到指定的文件。

Source= StackTrace: at Microsoft.Azure.Documents.Client.DocumentClient.Initialize(Uri serviceEndpoint,ConnectionPolicy connectionPolicy,可为空1 desiredConsistencyLevel) at Microsoft.Azure.Documents.Client.DocumentClient..ctor(Uri serviceEndpoint, String authKeyOrResourceToken, ConnectionPolicy connectionPolicy, Nullable

1个desiredConsistencyLevel)

内部异常1: FileNotFoundException:未能加载文件或程序集“”System.Net.Http,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a“”或其依赖项之一。“”系统找不到指定的文件。

我完全不知道为什么找不到System.Net.Http程序集--在我的类库项目中甚至有一个对.Net框架程序集“System.Net.Http 4.0.0.0”的程序集引用。

我也不明白的是,有一个奇怪的绑定重定向到4.2.0.0 -这是从哪里来的?为了解决这个问题,我尝试将以下重定向添加到服务Fabric服务的app.config (它正在使用类库):

但仍然没有区别,我仍然在运行时得到错误。

有谁有线索吗?有没有人见过这样的问题?

谢谢并致以问候,OliverB

EN

回答 18

Stack Overflow用户

发布于 2018-02-19 17:11:54

您面临的问题与Visual Studio有关,尤其是2017System.Net.Http v4.2.0.0..。然而,采用任何引用都应该通过NuGet完成的新方法,最新版本的System.Net.Http4.3.3包含dll版本4.1.1.2。

问题是,VS在构建时和运行时都会忽略您的引用,并且它会尝试引用它所知道的DLL。

如何修复:

确保所有对System.Net.Http的引用都是通过NuGet完成的

构建时错误:

更改VS 2017附带的System.Net.Http.dll扩展(或将其移动到某个位置else...basically摆脱它)(c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\net461\lib\

);如果您有一个不同的版本,那么路径将略有不同,但不会太多

运行时错误:

添加程序集绑定重定向

如果你在google上在线查看,你会发现微软在这方面有一些公开的问题,所以希望他们能在未来解决这个问题。

希望这能有所帮助。

更新:

在寻找此问题的一些永久性修复以在构建代理上工作时,请注意,如果迁移到新的NuGet PackageReference模型(在.csproj

不在packages.config)往往工作得更好。以下是有关如何执行此升级的指南的链接:

https://docs.microsoft.com/en-us/nuget/reference/migrate-packages-config-to-package-reference

票数 155
EN

Stack Overflow用户

发布于 2017-11-30 23:41:32

删除绑定重定向对我很有效,您可以尝试删除它:

票数 112
EN

Stack Overflow用户

发布于 2019-06-26 09:00:16

我刚安装了System.Net.Http使用NuGet。你可以在这里找到它:

https://www.nuget.org/packages/System.Net.Http/

The The TheASP.NET MVC我正在做的项目.NET 4.6.1..。在我的机器上调试时,它工作得很好。IIS Express使用Visual Studio 2019。

尝试运行部署到Azure的应用程序时出现问题。我得到了这个错误:

未能加载文件或程序集“”System.Net.Http,Version=4.2.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a“”或其依赖项之一。“”

在我的例子中,真正起作用的是打开.csproj文件并搜索System.Net.Http如下面的截图所示。

请注意,.csproj文件有版本4.1.1.3

实际上指向..\packages来自Nuget的文件夹,也就是说,这是Nuget安装的真实版本。一旦部署,这个特定的版本也将在服务器端恢复,并且一切都应该通过绑定重定向工作。

..。因此,绑定重定向中应该提到这个特定的版本。Web.config如下所示:

在我的例子中,在提交了几次之后,这个问题就解决了。

Azure Kudu..。Azure网站最终在没有错误的情况下启动。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47570912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档