无法在.NET AWSSDK中为单声道加载文件或程序集“System.Net.Http.Webrequest”

问题描述:

我最近在Mono中恢复了一个项目,我们有一段时间没有使用过。我做的第一件事之一是升级我们的共享代码,其中包含AWSSDK for .NET nuget包(2.0.11版本)。我们的Nuget软件包版本也进行了更新。无法在.NET AWSSDK中为单声道加载文件或程序集“System.Net.Http.Webrequest”

但是现在在目标机器上,我看到代码抛出一个异常,试图解决System.Net.Http.Webrequest,它应该存在并且在Mono中受支持。我甚至尝试从Git中抽取AWSSDK代码并在Xamarin中构建,并且构建得很好,但是在运行时,我的代码未能解决AWS SDK调用中的依赖关系。

System.IO.FileNotFoundException: Could not load file or assembly 'System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 
File name: 'System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 
    at Amazon.Runtime.AmazonWebServiceClient.Initialize() [0x00000] in <filename unknown>:0 
    at Amazon.Runtime.AbstractWebServiceClient..ctor (Amazon.Runtime.AWSCredentials credentials, Amazon.Runtime.ClientConfig config, AuthenticationTypes authenticationType) [0x00000] in <filename unknown>:0 
    at Amazon.Runtime.AmazonWebServiceClient..ctor (System.String awsAccessKeyId, System.String awsSecretAccessKey, Amazon.Runtime.ClientConfig config, AuthenticationTypes authenticationType) [0x00000] in <filename unknown>:0 
    at Amazon.S3.AmazonS3Client..ctor (System.String awsAccessKeyId, System.String awsSecretAccessKey, Amazon.S3.AmazonS3Config clientConfig) [0x00000] in <filename unknown>:0 
    at Core.Amazon.S3.S3File..ctor() [0x00000] in <filename unknown>:0 
    at LitmusMono.WebmailMonoTestingService..ctor() [0x00000] in <filename unknown>:0 
    at LitmusMono.ServiceStarter.InitTestingServices() [0x00000] in <filename unknown>:0 
Could not load file or assembly 'System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. 

    at Amazon.Runtime.AmazonWebServiceClient.Initialize() [0x00000] in <filename unknown>:0 
    at Amazon.Runtime.AbstractWebServiceClient..ctor (Amazon.Runtime.AWSCredentials credentials, Amazon.Runtime.ClientConfig config, AuthenticationTypes authenticationType) [0x00000] in <filename unknown>:0 
    at Amazon.Runtime.AmazonWebServiceClient..ctor (System.String awsAccessKeyId, System.String awsSecretAccessKey, Amazon.Runtime.ClientConfig config, AuthenticationTypes authenticationType) [0x00000] in <filename unknown>:0 
    at Amazon.S3.AmazonS3Client..ctor (System.String awsAccessKeyId, System.String awsSecretAccessKey, Amazon.S3.AmazonS3Config clientConfig) [0x00000] in <filename unknown>:0 

一些注意事项:我使用的版本配置是迫使x86版本,因为我的孩子的一个项目是86。

程序运行的目标平台是带有Mono 3.0.4 beta版的OSX。

我有一个类似的错误,但它是“System.Net.Http.Primitives”: 要解决它,我回滚AWSSDK版本,直到它工作,在我的情况下3.1.10。 这可以使用Visual Studio中的NuGet包管理器来完成。 工具 - > Nuget包管理器 - >管理解决方案的Nuget包,然后选择“已安装”,然后选择包。 更改右侧的版本号,然后单击安装。 希望这有助于!