在 Azure 函数中使用 Elastic Sc​​ale 包

Use Elastic Scale package within Azure function

我想在我的 Azure 函数中使用 Microsoft.Azure.SqlDatabase.ElasticScale.Client 包。

我添加了一个 project.json 如下:

{
  "frameworks": {
    "net452":{
      "dependencies": {
        "Microsoft.Azure.SqlDatabase.ElasticScale.Client": "1.3.3"
      }
    }
   }
}

函数:

#r "System.Data"
#r "Newtonsoft.Json"

using System.Net; 
using Newtonsoft.Json;
using System.Data.SqlClient;
using Microsoft.Azure.SqlDatabase.ElasticScale.ShardManagement;

public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    ShardMapManager shardMapManager;
    return req.CreateResponse(HttpStatusCode.OK);
}

我收到以下错误:

error CS0234: The type or namespace name 'SqlDatabase' does not exist in the namespace 'Microsoft.Azure' (are you missing an assembly reference?)
error CS0246: The type or namespace name 'ShardMapManager' could not be found (are you missing a using directive or an assembly reference?)

您缺少 reference external assembly

的 #r 语句

Microsoft.Azure.SqlDatabase.ElasticScale.Client 软件包安装了一个 Microsoft.Azure.SqlDatabase.ElasticScale.Client.dll,那么请尝试:

#r "Microsoft.Azure.SqlDatabase.ElasticScale.Client.dll"

#r "bin\Microsoft.Azure.SqlDatabase.ElasticScale.Client.dll"

(我的路径一直有问题)。

不过,我建议不要使用 CSX 脚本方法,而是使用 here 中描述的技术来使用预编译的二进制文件。然后,您将获得 C# 的全部优势,而不必处理添加 #r 语句以包含程序集的问题。