

AWS LambdaでC#でJsonを返すWebApiを作成しています。  
NugetパッケージマネージャでNewtonsoft.Jsonのv13.0.2を参照して以下のコードをAWSの  
Lambmaで動作させるとエラーメッセージが発生しました。

Nugetのコンソールマネージャからインストールしたのは  
Amazon.Lambda.Serialization.Json、Newtonsoft.Jsonの二つです。  
解決するための手段などお教えいただけないでしょうか。  
C#のランタイムは.Net6です。

（追記）  
上記の質問を投稿した後に新たに分かったことですが、  
上記の事象はデプロイ方法はVisualStudio2022と.NET Core CLIのどちらでも試しました。  
どちらでもConfigurationをDebugにした時に発生しており、  
試しにReleaseに設定すると上記のエラーが発生せずに正常にデプロイ、  
動作することがわかりました。

エラーメッセージ:

[code]

      "errorType": "FileNotFoundException",
      "errorMessage": "Could not load file or assembly 'Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. The system cannot find the file specified.\n",
      "stackTrace": [
        "at System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)",
        "at System.Reflection.RuntimeConstructorInfo.<get_Signature>g__LazyCreateSignature|19_0()",
        "at System.Reflection.RuntimeConstructorInfo.GetParametersNoCopy()",
        "at System.RuntimeType.FilterApplyMethodBase(MethodBase methodBase, BindingFlags methodFlags, BindingFlags bindingFlags, CallingConventions callConv, Type[] argumentTypes)",
        "at System.RuntimeType.GetConstructorCandidates(String name, BindingFlags bindingAttr, CallingConventions callConv, Type[] types, Boolean allowPrefixLookup)",
        "at System.RuntimeType.GetConstructorImpl(BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers)",
        "at System.Type.GetConstructor(BindingFlags bindingAttr, Binder binder, CallingConventions callConvention, Type[] types, ParameterModifier[] modifiers)",
        "at System.Type.GetConstructor(Type[] types)",
        "at Amazon.Lambda.RuntimeSupport.Bootstrap.UserCodeLoader.ConstructCustomSerializer(Attribute serializerAttribute) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/UserCodeLoader.cs:line 360",
        "at Amazon.Lambda.RuntimeSupport.Bootstrap.UserCodeLoader.GetSerializerObject(Assembly customerAssembly) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/UserCodeLoader.cs:line 216",
        "at Amazon.Lambda.RuntimeSupport.Bootstrap.UserCodeLoader.Init(Action`1 customerLoggingAction) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/UserCodeLoader.cs:line 124",
        "at Amazon.Lambda.RuntimeSupport.Bootstrap.UserCodeInitializer.InitializeAsync() in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/UserCodeInitializer.cs:line 46",
        "at Amazon.Lambda.RuntimeSupport.LambdaBootstrap.InitializeAsync() in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/LambdaBootstrap.cs:line 155"
      ]
    
[/code]

ソースコード:

[code]

    using Amazon.Lambda.Core;
    using Newtonsoft.Json;
    using System.Net;
    
    [assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
    
    namespace XXXX_SITE_TEST_Lambda1
    {
        public class Function
        {
            public LambdaResponse FunctionHandler(object input, ILambdaContext context)
            {
                var body = new Dictionary<string, string>() {
                    { "message", "Hello, World" },
                };
    
                var response = new LambdaResponse()
                {
                    isBase64Encoded = false,
                    statusCode = HttpStatusCode.OK,
                    headers = new Dictionary<string, string>()
                    {
                        {"my_header", "my_value" }
                    },
                    body = JsonConvert.SerializeObject(body),
                };
    
                return response;
            }
    
            public class LambdaResponse
            {
                [JsonProperty(PropertyName = "isBase64Encoded")]
                public bool isBase64Encoded;
    
                [JsonProperty(PropertyName = "statusCode")]
                public HttpStatusCode statusCode;
    
                [JsonProperty(PropertyName = "headers")]
                public Dictionary<string, string> headers;
    
                [JsonProperty(PropertyName = "body")]
                public string body;
            }
        }
    }
    
[/code]


CC BY-SA 4.0
2022-11-30T07:34:25.113
92513
2022-12-01T05:24:28.307
2022-12-01T05:24:28.307
55690
55690
question
c# aws-lambda
Could not load file or assembly 'Newtonsoft.Json エラーが発生する