将 Asp.NET 桌面上的核心应用程序发布到哪个目录?

What directory to publish Asp.NET Core application on desktop to?

我来自桌面应用程序世界(WPF、WinForms),惯例是将您的 exe 部署到 \Program Files[ (x86)]\CompanyName\AppName\ 目录,并将所有数据存储在 \Program Data\CompanyName\AppName\ 目录中。

在台式机(而非服务器)PC 上部署 Asp.NET 核心 Web 服务的相应约定是什么? Program Files 目录似乎不是一个好主意,因为它需要管理员凭据才能写入,这是您在尝试发布应用程序时遇到的问题。另一方面,虽然 Program Data 没有权限问题,但感觉不对,因为没有相应的 Program Files 位置。

我还看到 C:\intepub\wwwroot\web-service-name 在涉及 IIS 时使用过。那是要走的路吗?我猜想当 运行 Asp.Net Kestrel 中的核心应用程序作为反向代理在 IIS 后面时是有意义的,但是如果我将我的应用程序托管在 Windows 服务中呢?

有许多最终用户和企业应用程序部署为 windows 服务,带有嵌入式 Web 应用程序(使用 Apache,tomcat..等)在 Program Files 下,例如: HPE 服务器 admin/config 工具。

所以对于Kestrel APP,我会在Program Files下部署bin,在Program Data下写日志,DB等。它可以在没有权限问题的情况下工作,因为 dotnet 二进制文件具有所需的权限。