Microsoft.WindowsAzure.Storage (WindowsAzure.Storage) 9.1.1 在其依赖之外调用 Newtonsoft 失败
Posted
技术标签:
【中文标题】Microsoft.WindowsAzure.Storage (WindowsAzure.Storage) 9.1.1 在其依赖之外调用 Newtonsoft 失败【英文标题】:Microsoft.WindowsAzure.Storage (WindowsAzure.Storage) 9.1.1 failing on call to Newtonsoft outside of its dependency 【发布时间】:2018-09-23 12:34:32 【问题描述】: 我使用的是 WindowsAzure.Storage 9.1.1。 它声明它依赖于 Newtonsoft >= 10.0.2 我使用的是 .NET Framework 4.5 我安装了 Newtonsoft 11.0.2 当我执行以下代码时,table.ExecuteBatch 出现异常InnerException "无法加载文件或程序集 'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' 或其依赖项之一。系统无法找到指定的文件。":"Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" System.Exception System.IO.FileNotFoundException
public void TableStorageDemo()
storageAccount = CloudStorageAccount.Parse("connection");
tableClient = storageAccount.CreateCloudTableClient();
table = tableClient.GetTableReference("TABLE_NAME");
TableBatchOperation batchOperation = new TableBatchOperation();
var entity = new Entity();
entity.Test = "Hello World";
batchOperation.InsertOrReplace(entity);
if (batchOperation.Count() > 0) table.ExecuteBatch(batchOperation);
当它依赖于 Newtonsoft >= 10.0.2 时,它为什么要寻找 10.0.0.0
我尝试过使用各种版本的 WindowsAzure.Storage,它仅在使用依赖于 Newtonsoft >= 6.0.8 的版本 8.7.0 时才有效
我从 Azure 函数运行它。 (我已按照https://github.com/Azure/azure-functions-vs-build-sdk 的建议允许 Azure Functions 与 Newtonsoft > 9.0.1 版本一起运行)请注意,抱怨 Newtonsoft 依赖关系的不是函数 - 它是 WindowsAzure.Storage。该函数在 Newtonsoft 11.0.2 和 WindowsAzure.Storage 8.7.0 上正常运行
【问题讨论】:
【参考方案1】:我也可以在我身边复制它。如果我在Azure function App
中使用 WindowsAzure.Storage 9.1.1、Newtonsoft 11.0.2 和 Microsoft.NET.Sdk.Functions 1.0.13。
似乎是 Function App SDK 依赖相关问题。如果 WindowsAzure.Storage 8.7.0 或 7.2.1 可行,您可以使用它作为解决方法。
似乎与 WindowsAzure.Storage 9.1.1 本身无关的问题。
由于 WindowsAzure.Storage 9.1.1 和 Newtonsoft 11.0.2 在 console application
中正常工作。
您可以在 github 中提出an issue。
【讨论】:
感谢您的诊断。在 Github 中提出的问题。 github.com/Azure/azure-functions-vs-build-sdk/issues/194 通过上面的 github 问题链接,似乎问题降级 WindowsAzure.Storage 是唯一的选择。让我知道您是否尝试了除降级之外的其他任何方法。 @fanetic以上是关于Microsoft.WindowsAzure.Storage (WindowsAzure.Storage) 9.1.1 在其依赖之外调用 Newtonsoft 失败的主要内容,如果未能解决你的问题,请参考以下文章