在Azure功能中使用Elastic Sc​​ale包

时间:2017-03-29 13:20:36

标签: azure azure-functions

我想在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?)

1 个答案:

答案 0 :(得分:1)

您错过了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语句以包含程序集。