我有一个奇怪的问题,让我感到很疯狂...
我有一个简单的类库项目(完整的.NET框架,4.6.1),其中包含围绕Cosmos DB的功能的包装器类。因此,我将“Microsoft.Azure.DocumentDB” NuGet包1.19.1添加到了这个项目中。除此之外,我还引用了“Newtonsoft.Json” NuGet包10.0.3,以及一些“Microsoft.Diagnostics.EventFlow.*” NuGet包。
到目前为止,一切都可以编译而没有任何错误。
但是,一旦我使用一个简单的Service Fabric无状态服务(完整的.NET Framework 4.6.1)调用我的包装器类,并尝试执行以下代码行:
_docClient = new DocumentClient(new Uri(cosmosDbEndpointUrl), cosmosDbAuthKey);
我在运行时遇到了这个奇怪的错误:
System.IO.FileNotFoundException 异常 HResult=0x80070002
Message=无法加载文件或程序集“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, Nullable1 desiredConsistencyLevel) at Microsoft.Azure.Documents.Client.DocumentClient..ctor(Uri serviceEndpoint, String authKeyOrResourceToken, ConnectionPolicy connectionPolicy, Nullable
1 desiredConsistencyLevel)Inner Exception 1: FileNotFoundException: 无法加载文件或程序集“System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个 依赖项。系统找不到指定的文件。
我完全不知道为什么根本找不到 System.Net.Http 程序集——我的类库项目甚至有对 .Net Framework 程序集 “System.Net.Http 4.0.0.0”的引用。
我也不理解为什么会有这个奇怪的绑定重定向到 4.2.0.0——这是从哪里来的呢?
为了解决这个问题,我尝试在 Service Fabric 服务的 app.config 中添加以下重定向:
但是仍然没有任何改变,我仍然在运行时遇到了这个错误。
有人知道原因吗?有人碰到过类似的问题吗?
node
一样将VS的包都放在node_modules
文件夹中,这样所有的文件都可以集中管理。遇到问题时,只需删除该文件夹,运行npm install
命令,搞定。 - Jeb50