一、背景
在 Windows 环境下,要让 .NET
应用程序运行在后台,你可以使用几种方法。
每种方法都有其适用的场景,你可以根据你的具体需求选择合适的方法。对于开发和调试目的,使用 PowerShell 或批处理文件通常是最简单的方法。对于生产环境,将应用程序作为 Windows 服务运行通常是更稳定和可靠的选择。这里就用批处理文件的方式。
- 使用 PowerShell 脚本: 你可以编写一个 PowerShell 脚本来运行你的应用程序,并使其在后台运行。这可以通过使用
Start-Process
命令实现,它允许程序在没有窗口的情况下运行。 - 创建一个批处理文件: 创建一个
.bat
文件,其中包含你的dotnet
命令,并使用start
命令以无窗口模式运行它。 -
使用 Windows 服务: 如果你的应用程序需要长时间运行且不间断,你可能想要将其作为 Windows 服务运行。这需要一些代码更改,以便将你的应用程序作为服务来启动和管理。
.NET Core
提供了一些工具和库来帮助你将应用程序作为服务运行。 -
使用任务计划程序: 使用 Windows 任务计划程序创建一个新任务,该任务在系统启动时运行你的
.NET
应用程序。你可以配置任务在没有用户登录的情况下运行。
二、操作
运行.net程序,将输出日志和报错日志分别输出到文件中。
先将.net程序发布一个稳定的版本:dotnet publish --configuration Release。然后去跑这个文件。
2.1 目录结构
2.2 脚本文件
run.bat
@echo off
PowerShell -NoProfile -ExecutionPolicy Bypass -File "scripts\webapi_begin.ps1"
webapi_begin.ps1
# 日志文件路径
$logPath = "scripts\log\web_api_log.txt"
$errorPath = "scripts\log\error.txt"
# 定义要启动的程序和参数
$exePath = "dotnet"
$arguments = "bin/Release/net7.0/xxxx.dll"
# 启动进程并重定向输出到日志文件
$process = Start-Process $exePath -ArgumentList $arguments -PassThru -NoNewWindow -RedirectStandardOutput $logPath -RedirectStandardError $errorPath
运行命令:.\scripts\run.bat