Debugging Azure Functions Locally with IronPDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

本地运行Azure时的问题

遇到此问题时常见的异常是 "在定位部署配置文件 IronPdf.Native.Chrome.deployment.json 时出错"

推荐: 运行针对 .NET Core 3.1 <TargetFramework>netcoreapp3.1</TargetFramework> 的 Windows 托管 Azure 函数应用

必需: 在 Visual Studio 中创建 Azure 函数时使用默认的 "在进程中" 配置。 IronPDF 的最新版本支持运行在 "出进程" 或 "隔离进程" 中的 Azure 函数,可以参阅 "在隔离工作模型中运行 C# Azure 函数的指南"。但是,旧版本可能不支持这些类型的Azure函数。

Azure 函数图

本地运行Azure函数时的依赖问题

在本地使用 Azurite (VS2022) 或 Azure Storage Emulator (VS2019) 运行 Azure 时,会创建一个额外的 bin 目录,存储模拟器用于部署。 只有 DLL 文件被复制到此目录,因此需要额外文件的软件将无法运行,并可能抛出上述异常。

您可以通过将 runtimes 目录复制到存储模拟器使用的单独 bin 目录中来解决此问题。 我们建议在本地运行时作为 构建后事件(见下方说明)执行此操作(因为重新编译/构建将使 bin 目录恢复到其原始状态)。 部署到云端时,你将不会遇到此问题。

  • 问题: 本地运行 Azure 函数项目时,它会创建一个额外的 bin 文件夹,并在其外运行函数。 然而,它并没有将所有必要的文件复制到该 bin 文件夹中。
  • 例子: 一个项目位于 C:\code\azure-functions-test,构建到 C:\code\azure-functions-test\bin\Debug\netcoreapp3.1
  • 解决方案: 复制 C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\runtimes 目录,使其也存在于 C:\code\azure-functions-test\bin\Debug\netcoreapp3.1\bin
  • 如果提示,覆盖任何现有文件

依赖关系图

构建后事件

要自动将必要的文件复制到本地 Azure Functions bin 目录,请按照以下说明在 Visual Studio 中设置 构建后事件

  1. 右键单击 Azure Functions 项目,选择 属性
  2. 向下滚动到 事件 部分。
  3. 输入下面显示的 构建后事件
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /D
XCOPY "$(TargetDir)runtimes" "$(TargetDir)bin\runtimes" /S /E /Y /I /R /D
SHELL

此命令将:

  • runtimes 目录的内容复制到 bin/runtimes 目录。
  • /S/E 开关确保包含所有子目录和空目录。
  • /Y 开关抑制提示确认您是否要覆盖现有目标文件。
  • /I 开关假设目标是目录(如果不存在)。
  • /R 开关覆盖只读文件。
  • /D 开关复制指定日期或之后更改的文件。

构建后事件配置

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 16,154,058 | 版本: 2025.11 刚刚发布