1

我正在尝试在 Azure 函数中使用 FluentEmail 2.8.0。但是,我有以下例外。

RazorLight.RazorLightException:无法从条目程序集中加载元数据引用。确保 PreserveCompilationContext 在 *.csproj 文件中设置为 true

我已将以下内容添加到 csproj

<PropertyGroup>
    <FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
</PropertyGroup>

<PropertyGroup>
    <PreserveCompilationReferences>true</PreserveCompilationReferences>
    <PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>

但我仍然得到同样的错误。

有人遇到过这个吗?

环境:.NET Core 3.1、Azure Functions v3

4

1 回答 1

1

至少我能够找到解决方法。

  1. 不要使用 fluent email factory 的 razor 渲染器

  2. 使用以下

             var engine = new RazorLightEngineBuilder()
                         .UseEmbeddedResourcesProject(typeof(EmailService))
                         .UseMemoryCachingProvider()
                         .SetOperatingAssembly(Assembly.GetExecutingAssembly())
                         .Build();
             var result = engine.CompileRenderStringAsync(templateName, template, viewModel);
    

...

然后使用_fluentEmail.Create()...Body(result, true)

还添加缺少的 nuget 包System.Threading.AccessControl

于 2020-07-19T05:38:24.367 回答