Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# AWS.NET SDK SimpleMail SendEmail返回';无法加载类型';错误_C#_.net_Amazon Web Services_Aws Sdk - Fatal编程技术网

C# AWS.NET SDK SimpleMail SendEmail返回';无法加载类型';错误

C# AWS.NET SDK SimpleMail SendEmail返回';无法加载类型';错误,c#,.net,amazon-web-services,aws-sdk,C#,.net,Amazon Web Services,Aws Sdk,我正在使用AWS SimpleMail开发一个应用程序。当我尝试测试SendEmail功能时,出现以下错误 无法从加载类型“Amazon.Runtime.Internal.InvokeOptions” 程序集“AWSSDK.Core,版本=3.3.0.0,区域性=中性, PublicKeyToken=885c28607f98e604' 我已经安装了AWSSDK.Core v3.3.31.7和AWSSDK.SimpleEmail v3.3.7.30 var credentials = new Ba

我正在使用AWS SimpleMail开发一个应用程序。当我尝试测试SendEmail功能时,出现以下错误

无法从加载类型“Amazon.Runtime.Internal.InvokeOptions” 程序集“AWSSDK.Core,版本=3.3.0.0,区域性=中性, PublicKeyToken=885c28607f98e604'

我已经安装了AWSSDK.Core v3.3.31.7和AWSSDK.SimpleEmail v3.3.7.30

var credentials = new BasicAWSCredentials("key", "secret");

var client = new Amazon.SimpleEmail.AmazonSimpleEmailServiceClient(credentials, Amazon.RegionEndpoint.EUWest1);

var sesResponse = client.SendEmail(new SendEmailRequest
{
    Destination = new Destination
    {
        BccAddresses = new List<string>
        {

        },
        ToAddresses = new List<string> {
            "user@cuchuma.net",
            "user2@cuchuma.net"
        }
    },
    Message = new Message
    {
        Body = new Body
        {
            Html = new Content
            {
                Charset = "UTF-8",
                Data = "This message body contains HTML formatting. It can, for example, contain links like this one: <a class=\"ulink\" href = \"http://docs.aws.amazon.com/ses/latest/DeveloperGuide\" target = \"_blank\"> Amazon SES Developer Guide </a>."
            },
            Text = new Content
            {
                Charset = "UTF-8",
                Data = "This is the message body in text format."
            }
        },
        Subject = new Content
        {
            Charset = "UTF-8",
            Data = "Test email"
        }
    },
    ReplyToAddresses = new List<string>
    {

    },
    ReturnPath = "",
    ReturnPathArn = "",
    Source = "no-reply@cuchuma.net",
    SourceArn = ""
});

string messageId = sesResponse.MessageId;
var-credentials=新的基本凭证(“密钥”、“机密”);
var client=newamazon.SimpleEmail.AmazonSimpleEmailServiceClient(凭证,Amazon.RegionEndpoint.EUWest1);
var sesResponse=client.sendmail(新的sendmailrequest
{
目的地=新目的地
{
bccadireds=新列表
{
},
ToAddresss=新列表{
"user@cuchuma.net",
"user2@cuchuma.net"
}
},
消息=新消息
{
车身=新车身
{
Html=新内容
{
Charset=“UTF-8”,
Data=“此邮件正文包含HTML格式。例如,它可以包含如下链接:。”
},
文本=新内容
{
Charset=“UTF-8”,
Data=“这是文本格式的邮件正文。”
}
},
主题=新内容
{
Charset=“UTF-8”,
Data=“测试电子邮件”
}
},
ReplyToAddresses=新列表
{
},
ReturnPath=“”,
ReturnPathArn=“”,
Source=“否-reply@cuchuma.net",
SourceArn=“”
});
字符串messageId=sesResponse.messageId;

仅添加了无法加载的类。所以我怀疑您的AWSSDK.Core版本比您之前所说的版本(v3.3.31.7)要旧

现在我不确定这是怎么发生的,但我在过去看到过这样的例子:Nuget出错,项目文件中的手动输入导致加载错误的dll

在记事本中打开项目文件并查找SDK引用。它们应该如下所示:

<Reference Include="AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604, processorArchitecture=MSIL">
      <HintPath>..\packages\AWSSDK.Core.3.3.31.7\lib\net45\AWSSDK.Core.dll</HintPath>
</Reference>
<Reference Include="AWSSDK.SimpleEmail, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604, processorArchitecture=MSIL">
      <HintPath>..\packages\AWSSDK.SimpleEmail.3.3.7.30\lib\net45\AWSSDK.SimpleEmail.dll</HintPath>
</Reference>

@Martin Beeby答案的变体

使用该工具,我看到在尝试加载本地副本之前加载了AWSSDK.Core的GAC版本。我的GAC有一个过时版本的AWSSDK.Core程序集,更糟糕的是,我无法安全地卸载它,因为存在依赖关系。最终起作用的是:我导航到项目中的本地副本(类似于
/packages/AWSSDK.Core.3.5.3.1/
),并发出了一个提升的PowerShell提示符:

&“C:\Program Files(x86)\Microsoft SDK\Windows\v10.0A\bin\NETFX 4.7.2 Tools\gacutil.exe”/i。\AWSSDK.Core.dll

这样就可以安装新的版本,错误就消失了


注意:您的
gacutil
可能位于不同的路径中,它甚至可能位于
path
环境变量中,因此您不需要路径。

您的项目内置了.net的哪个版本?.net Framework 4.5
ReturnPath = "",
ReturnPathArn = "",
SourceArn = ""