如何定义捆绑的 .NET Core SingleFile 发布应用程序将部署到的输出目录?

如何定义捆绑的 .NET Core SingleFile 发布应用程序将部署到的输出目录?

我正在 Linux 中部署 .NET Core Worker Service 应用程序,作为 systemd 守护进程/服务,按照建议。 .NET Core 应用程序使用 SingleFile 属性发布,该属性生成一个一体化的 exe 文件。在systemd/system/myService.service 文件中,我将ExecStart 设置为指向该exe 文件的路径。

它有效,但我注意到在每次系统启动时,“提取”exe 捆绑包的服务工作目录都会安装到 /var/tmp/.net/root/{dynamic directory} - 每次启动时生成的动态目录。

我需要将文件安装到固定目录。我在 .service 配置选项中找不到控制此功能的选项。

任何人都知道如何做到这一点?

答案1

在您的用例中,使用米哈尔·波利托夫斯基提供的信息在评论中。您的提取目录设置为 /var/tmp 的原因是因为

   DOTNET_BUNDLE_EXTRACT_BASE_DIR 

为您提供服务的环境中不存在。

既然是这样的情况,你应该持久地定义该环境变量在您运行 systemd 服务的用户上。

(或者定义环境文件或Environment=服务文件本身的选项)

相关内容