在Azure函数中使用Gremlin.NET时无法加载文件或程序集'System.Reflection.TypeExtensions,Version = 4.0.0.0'

时间:2018-04-19 14:42:08

标签: .net azure-functions azure-cosmosdb gremlin

我想使用Gremlin.NET从Azure Functions更新Azure CosmosDB图。我正在使用1.0.10函数Cli,.NET Framework 4.7.1以及具有这些依赖项的项目:

<PackageReference Include="Gremlin.Net" Version="3.3.2" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DocumentDB" Version="1.2.0" />
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.DurableTask" Version="1.2.2-beta3" />
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.13" />

提交查询

    var gremlinServer = new GremlinServer(
        Settings.GraphEndPoint,
        443,
        enableSsl: true,
        username: "/dbs/" + Settings.GraphDatabaseName + "/colls/" + Settings.GraphName,
        password: Settings.GraphPrimaryKey);

    using (var gremlinClient = new GremlinClient(gremlinServer, new GraphSON2Reader(), new GraphSON2Writer(), GremlinClient.GraphSON2MimeType))
    {
        var resultSet = await gremlinClient.SubmitAsync<dynamic>(graphStatement);

我遇到了这个错误:

  

执行函数时出现异常:GraphQuery。 Gremlin.Net:无法加载文件或程序集'System.Reflection.TypeExtensions,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。

NuGet依赖项diplay System.Reflection.TypeExtensions版本4.3.0,文件版本似乎是4.1.1.0。

我该怎么做才能让它发挥作用?

观察添加: 当我克隆时,将Gremlin.NET csproj添加到我的解决方案并在解决方案中引用它,我得到相同的错误。但是,如果我将Gremlin.NET Target框架从.NET Standard 1.3更改为.NET Standard 2.0,我不会收到此错误。然而,与Gremlin服务器的通信在Connection.ReceiveAsync中断开。

2 个答案:

答案 0 :(得分:0)

我遇到过这个问题,请确保您拥有所需的.NET Framework版本(4.5.1或更高版本)

答案 1 :(得分:0)

使用Gremlin.NET将功能应用程序迁移到Azure Functions v2-在此不会发生引用问题。