前提:由於是演示WindowsService項目所以得部署好agent
參考:https://github.com/yuzd/AntDeployAgent/issues/1 注意:Windows 服務器上 需要安裝一個agent 就是 安裝一個windows服務,用來處理iis的發布和windows服務的發布,可以點擊上面的參考鏈接進行安裝。 注意: 得用管理員權限部署agent 防止會出現部署到Windows 服務上權限不足問題
這里演示的是將dotnetcore 3.0 項目
1. 開始創建worker service 項目 創建新項目——》選擇輔助角色服務
2. 項目創建成功之后,您會看到創建了兩個類:Program和Worker。
Program.cs
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
Worker.cs
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
public Worker(ILogger<Worker> logger)
{
_logger = logger;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
await Task.Delay(1000, stoppingToken);
}
}
}
worker只是一個簡單的類,它繼承自BackgroundService ,而后者又實現IHostedService接口。 默認的worker演示,沒隔1秒,循環打印運行的時間。
部署為Windows服務運行
1.在項目中添加nuget包:Microsoft.Extensions.Hosting.WindowsServices
2.然后在program.cs內部,將UseWindowsService()添加到CreateHostBuilder
3.在工程上點擊右鍵 然后選擇 AntDeploy
4.配置AntDeploy
4.1添加一個環境 名字叫 測試
4.2在 測試環境里面添加 windows服務器 這里我做測試就添加就是我本機,注意Host里面是填寫格式為:ip:端口號
注意:Token不是windows服務器的密碼!!!是安裝agent后,agent的配置文件里面配置的Token(你自己自定義配置的)注意:Port不是你要發布的項目的端口號!!!是安裝agent后,agent的配置文件里面配置的端口號(你自己自定義配置的)點擊【Connect Test】按鈕進行確認agent可以成功鏈接,否則會發布失敗如果【Connect Fail】失敗 請查看 https://github.com/yuzd/AntDeployAgent/issues/10
4.3進入 WindowsService Tab界面
Sdk類型選擇 netcore ServiceName 請自己填寫 不能和現有的有重復就行 我這里就填 testnetcoreservice
點擊 【Deploy】按鈕進行發布 如下圖所示:
因為是第一次創建,agent檢測到了 會彈出了讓你填:
點擊提交:
發布成功: