gpt4 book ai didi

c# - Newtonsoft.Json 引用提示 Azure Functions

转载 作者:太空狗 更新时间:2023-10-29 17:31:57 25 4
gpt4 key购买 nike

我正在运行一个名为 SmsWebhook 的 Azure Functions。它调用外部程序集 AzureFunctionsSample.Services.dll 中的方法,该程序集引用 Newtonsoft.Json 8.0.3

我的 Run.csx 的详细信息如下所示:

#r "AzureFunctionsSample.Services.dll"
using System.Net;
using AzureFunctionsSample.Services

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
...
}

在上面的 Run() 方法中,我创建了一个实例并调用该实例中的方法。但是,每当我调用该方法时,我都会收到以下错误:

2016-05-19T13:41:45  Welcome, you are now connected to log-streaming service.
2016-05-19T13:41:46.878 Function started (Id=64fccf0c-d0ef-45ef-ac1c-7736adc94566)
2016-05-19T13:41:46.878 C# HTTP trigger function processed a request. RequestUri=https://ase-dev-fn-demo.azurewebsites.net/api/smswebhook
2016-05-19T13:41:46.878 Function completed (Failure, Id=64fccf0c-d0ef-45ef-ac1c-7736adc94566)
2016-05-19T13:41:46.894 Exception while executing function: Functions.SmsWebhook. Microsoft.Azure.WebJobs.Script: One or more errors occurred. AzureFunctionsSample.Services: Could not load file or assembly 'Newtonsoft.Json, Version=8.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040).

我在bin目录下手动添加了相同版本的Newtonsoft.Json.dll,但仍然出现同样的错误。为什么它会提示 Newtonsoft.Json.dll 文件?

如果我将外部程序集中的所有逻辑移至 Run.csx 中,顺便说一句,它不会提示。

最佳答案

Json.Net 可以简单地引用在 Run.csx 文件顶部添加此行:

#r "Newtonsoft.Json"

如果您想了解 Azure Functions 托管环境自动添加哪些程序集,请参阅本文:

否则,如果您想使用特定版本的 Json.Net,您可能应该使用 nuget 包添加对 Json.Net 的引用:

因此您需要添加一个如下所示的 Project.json 文件:

{
"frameworks": {
"net46":{
"dependencies": {
"Newtonsoft.Json": "8.0.3"
}
}
}
}

如果您的外部依赖项引用 Newtonsoft.Json 而不使用 nuget 包,您可以查看这篇文章,其中解释了如何上传二进制文件:

关于c# - Newtonsoft.Json 引用提示 Azure Functions,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37335321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com