如何使用Azure Function App调用Azure DevOps仓库中的.cs文件?
使用Azure Function App调用Azure DevOps Repository中已有.cs文件的步骤
方式一:将.cs文件打包为类库引用
步骤1:在Azure DevOps中准备类库
- 把目标.cs文件所在的项目调整为.NET类库项目(若尚未是),确保能编译生成有效的
.dll文件。 - 配置Azure DevOps Pipeline,将类库编译为发布版,可选择打包成NuGet包发布到Azure Artifacts,或者直接将
.dll文件上传至Azure Blob存储。
- 把目标.cs文件所在的项目调整为.NET类库项目(若尚未是),确保能编译生成有效的
步骤2:在Azure Function中引入类库
- 如果是NuGet包:在Function项目的
.csproj中添加包引用,示例:
同时在项目中配置Azure Artifacts的NuGet源,确保能拉取到包。<PackageReference Include="YourCustomLibrary" Version="1.0.0" /> - 如果是独立
.dll:通过Azure Portal的**高级工具(Kudu)**进入Function的wwwroot/bin目录,上传.dll文件;或者用Azure CLI命令上传:
之后在az functionapp deployment source config-zip -g <资源组名> -n <Function名称> --src <本地dll压缩包路径>.csproj中添加引用:<Reference Include="YourCustomLibrary"> <HintPath>bin/YourCustomLibrary.dll</HintPath> </Reference>
- 如果是NuGet包:在Function项目的
步骤3:在Function代码中调用
假设类库中有如下方法:public static class MyLibraryHelper { public static string ProcessData(string input) { return $"Processed: {input}"; } }直接在Function的运行方法中调用:
public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { var input = req.Query["input"]; var result = MyLibraryHelper.ProcessData(input); return new OkObjectResult(result); }
方式二:直接将Azure DevOps Repo作为Function部署源
步骤1:关联部署源
在Azure Portal的Function App中进入部署中心,选择Azure Repos Git作为部署源,关联你的Azure DevOps仓库、目标分支和Function项目路径。步骤2:调整文件结构
将需要调用的.cs文件移动到Function项目的目录下(或作为项目的一部分),确保编译时能包含该文件。步骤3:直接调用代码
在Function的运行方法中,直接引用.cs文件中的类和方法,无需额外打包,部署时Azure会自动编译整个项目。
验证测试
部署完成后,触发Function(如HTTP触发的话调用对应的URL),通过Azure Portal的日志流查看运行日志,或检查返回结果,确认调用是否成功。
内容的提问来源于stack exchange,提问作者Vardhan Reddy
相关产品推荐
相关产品推荐

