【问题标题】:Azure Functions DocumentClient could not load type from assembly exceptionAzure Functions DocumentClient 无法从程序集异常加载类型
【发布时间】:2019-03-09 01:08:45
【问题描述】:

我有一个调用实用程序库的 Azure Function v2,该实用程序库又实例化 DocumentClient。在本地运行我的函数时,它会在此行引发异常:

_client = new DocumentClient(new Uri(cosmosDbEndpoint), cosmosDbAuthKey, Storage.SerializerSettings, connectionPolicy);

System.Private.CoreLib:执行函数时出现异常:ComponentDesignInserter-Http-UploadFiles。 Microsoft.Azure.Documents.Client:无法从程序集“System.Core,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”加载类型“System.Diagnostics.Eventing.EventProviderTraceListener”。

我的实用程序库是 .NET Framework 4.7。我的 Azure Function v2 项目是 .NET Standard 2.0。有问题吗?

或者这是我需要在 Azure Function v2 项目中安装的某些依赖项的症状?实用程序库具有但 Azure Function v2 项目没有的依赖项?

【问题讨论】:

  • 您不应该让 .NET Standard 项目引用 .NET Framework 项目。

标签: c# azure azure-functions azure-cosmosdb .net-standard-2.0


【解决方案1】:

正如您所提到的,问题在于您使用的是 NET Standard 2.0 项目中的 NET Framework 4.7 库。

确保在 NET 4.7 库中使用 Cosmos DB Core SDK:https://www.nuget.org/packages/Microsoft.Azure.DocumentDB.Core/

不是 NET Full Framework 包 (https://www.nuget.org/packages/Microsoft.Azure.DocumentDB)。

在您的 Azure Functions V2 项目中,您还需要使用相同的 nuget (Core)。如果您使用的是Microsoft.Azure.WebJobs.Extensions.CosmosDB 包,则它已包含在内。

【讨论】:

  • 这行得通,谢谢!我有一个 .NET Core 和一个 .NET Framework 应用程序,然后我在 .NET Framework 项目中更改为 Microsoft.Azure.DocumentDB.Core 并开始工作。
  • 就我而言,我还有其他依赖于完整框架的包,例如 BulkExecutor。我能做什么?
  • 您可以使用 Bulk Executor 预览版或使用 V3 SDK devblogs.microsoft.com/cosmosdb/… 中新的 Bulk 支持
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-25
  • 2016-12-16
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多