无法加载文件或程序集'Microsoft.Azure.Graphs'

时间:2017-10-08 10:10:47

标签: c# azure azure-cosmosdb

我创建了一个Azure函数来连接到CosmosDB Graph。我正在使用nuget包Microsoft.Azure.Graph 0.3.0-preview,当我点击该函数的端点时出现错误。

Exception while executing function: GetTrain -> Could not load file or assembly 'Microsoft.Azure.Graphs, Version=0.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

该功能的代码如下所示,但它甚至没有达到目的。

[FunctionName("GetThing")]
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, "get", Route = "thing/{id}")]HttpRequestMessage req, string id, TraceWriter log)
{
    log.Info("C# HTTP trigger function processed a request.");

    string endpoint = ConfigurationManager.AppSettings["endpoint"];
    string authKey = ConfigurationManager.AppSettings["authkey"];
    string db = ConfigurationManager.AppSettings["db"];
    string collection = ConfigurationManager.AppSettings["collection"];

    DocumentClient client = new DocumentClient(new Uri(endpoint), authKey,
        new ConnectionPolicy { ConnectionMode = ConnectionMode.Direct, ConnectionProtocol = Protocol.Tcp });

    DocumentCollection graph = await client.CreateDocumentCollectionIfNotExistsAsync(
            UriFactory.CreateDatabaseUri(db),
            new DocumentCollection { Id = collection },
            new RequestOptions { OfferThroughput = 1000 });


        IDocumentQuery<dynamic> query = client.CreateGremlinQuery<dynamic>(graph, $"g.V('{id}').has('thing')");

    // Fetching the name from the path parameter in the request URL
    return req.CreateResponse(HttpStatusCode.OK, "Hello");
}

更新

似乎有一个构建警告,完全没有看到。有什么想法吗?

  

警告MSB3270正在构建的项目的处理器体系结构“MSIL”与参考“C:\ Users \ blah.nuget \ packages \ microsoft.azure.graphs \ 0.3.0-”的处理器体系结构不匹配预览\ lib \ net461 \ Microsoft.Azure.Graphs.dll“,”AMD64“。这种不匹配可能会导致运行时故障。请考虑通过Configuration Manager更改项目的目标处理器体系结构,以便在项目和引用之间调整处理器体系结构,或者使用与项目的目标处理器体系结构相匹配的处理器体系结构依赖于引用。

3 个答案:

答案 0 :(得分:2)

此问题已解决,因为包Microsoft.Azure.Graphs&gt; = 0.3.1-preview

正如其他人所指出的那样,问题在于Microsoft.Azure.Graphs以前只针对x64平台。现在编译新版本的程序集,目标是AnyCPU(MSIL)。

答案 1 :(得分:1)

尝试使用Microsoft.Azure.Graphs软件包的0.2.4预览版。 0.3.0版本似乎存在问题。请参阅SDK页面上的最新评论:

https://docs.microsoft.com/en-us/azure/cosmos-db/graph-sdk-dotnet

我添加了一个GitHub问题:

https://github.com/Azure/azure-documentdb-dotnet/issues/361

答案 2 :(得分:0)

github上的这个问题修复了我https://github.com/Azure/azure-documentdb-dotnet/issues/361的所有内容,只将Any Cpu更改为x64