首页 > 解决方案 > F# ASP.NET Core 项目:EntryPointAttribute 错误

问题描述

这是我的 ASP.NET Core Web API 入口点:

open Microsoft.AspNetCore
open Microsoft.AspNetCore.Hosting

module Hosting =
    let BuildWebHost args =
        WebHost
            .CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseIISIntegration()
            .Build()

module Program =
    let [<EntryPoint>] main args = Hosting.BuildWebHost(args).Run(); 0

这是来自Program.fs我项目中的最终文件。

经过几个月的顺利编译,我突然遇到以下编译失败:

错误 FS0433:标有“EntryPointAttribute”属性的函数必须是编译序列中最后一个文件中的最后一个声明。

这是最后一个文件中的最后一个声明——知道为什么这会突然开始失败吗?

标签: asp.net-coref#

解决方案


这是因为用户机密基础结构将文件作为程序集中的最后一个文件注入。它在 F# 的下一个版本中得到修复:请参阅https://github.com/aspnet/Configuration/issues/833

这里有一个解决方法:https ://medium.com/@dmytrol/making-asp-net-core-user-secrets-work-in-f-projects-9b04572d81f6 ,您可以在其中设置您的用户机密 ID代码库而不是项目文件中。


推荐阅读