我想在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?)
答案 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
语句以包含程序集。