You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Functions中使用System.Text.RegularExpressions遇加载错误如何解决

在Azure Functions中使用System.Text.RegularExpressions解决程序集加载错误

Azure Functions完全支持System.Text.RegularExpressions,你遇到的程序集加载错误是版本依赖不匹配导致的,以下是具体解决方案:

1. 检查并匹配Azure Functions运行时版本

Azure Functions运行时版本与.NET版本强绑定:

  • Functions v4 对应 .NET 6/7/8
  • Functions v3 对应 .NET Core 3.1

确认你的运行时配置:

  • 本地调试:查看local.settings.json中的FUNCTIONS_EXTENSION_VERSION字段,确保是~4(对应.NET 6+)
  • 云端部署:在Azure门户的函数应用配置页,确认运行时版本与项目目标.NET版本一致

2. 调整NuGet包引用

如果你的项目显式引用了System.Text.RegularExpressions 7.0.0版本,而Functions运行时对应的.NET版本不兼容,就会出现找不到程序集的问题:

  • 打开项目的.csproj文件,删除类似以下的显式引用行:
    <PackageReference Include="System.Text.RegularExpressions" Version="7.0.0" />
    
  • .NET SDK已默认包含该程序集,无需额外引用,删除后重新生成项目即可

3. 优化Slug处理代码(可选)

你的现有正则可以简化,同时用Unicode标准化更高效处理所有重音字符:

using System;
using System.Linq;
using System.Globalization;
using System.Text.RegularExpressions;

namespace TestFunctionApi
{
    public static class Example
    {
        public static string CleanUpSlugText(string text)
        {
            // 标准化字符为基础字符+重音标记
            var normalizedText = text.Normalize(NormalizationForm.FormD);
            // 移除所有重音标记
            var withoutAccents = new string(normalizedText
                .Where(c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
                .ToArray());
            // 替换非字母数字为连字符,去除首尾连字符并转小写
            var slug = Regex.Replace(withoutAccents, @"[^a-zA-Z0-9]+", "-")
                .Trim('-')
                .ToLower();
            
            return slug;
        }

        // 原Run方法保持不变...
    }
}

4. 验证调试

  • 本地:清理项目缓存,重新生成后启动调试,确认错误消失
  • 云端:部署后在Azure门户查看函数日志,验证Slug生成逻辑正常运行

内容的提问来源于stack exchange,提问作者Emil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:35:19