From 1670b32ad6ecc0ba2352cf13d921b19c292a62a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=94=84=E5=A4=B4?= Date: Thu, 1 Aug 2024 15:56:15 +0800 Subject: [PATCH] demo --- SynPlc.sln | 10 +++++----- SynPlc/Program.cs | 25 +++++++++++++++++++++++-- SynPlc/Properties/launchSettings.json | 11 +++++++++++ SynPlc/SynPlc.csproj | 13 +++++++++---- SynPlc/Worker.cs | 20 ++++++++++++++++++++ SynPlc/appsettings.Development.json | 8 ++++++++ SynPlc/appsettings.json | 8 ++++++++ 7 files changed, 84 insertions(+), 11 deletions(-) create mode 100644 SynPlc/Properties/launchSettings.json create mode 100644 SynPlc/Worker.cs create mode 100644 SynPlc/appsettings.Development.json create mode 100644 SynPlc/appsettings.json diff --git a/SynPlc.sln b/SynPlc.sln index 1430445..6d21701 100644 --- a/SynPlc.sln +++ b/SynPlc.sln @@ -1,6 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SynPlc", "SynPlc\SynPlc.csproj", "{495A640B-3209-4D8D-ACEC-3CAB9EE6CE37}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SynPlc", "SynPlc\SynPlc.csproj", "{6A385551-E95F-4578-B9D0-8C13A7ECBC97}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -8,9 +8,9 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {495A640B-3209-4D8D-ACEC-3CAB9EE6CE37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {495A640B-3209-4D8D-ACEC-3CAB9EE6CE37}.Debug|Any CPU.Build.0 = Debug|Any CPU - {495A640B-3209-4D8D-ACEC-3CAB9EE6CE37}.Release|Any CPU.ActiveCfg = Release|Any CPU - {495A640B-3209-4D8D-ACEC-3CAB9EE6CE37}.Release|Any CPU.Build.0 = Release|Any CPU + {6A385551-E95F-4578-B9D0-8C13A7ECBC97}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6A385551-E95F-4578-B9D0-8C13A7ECBC97}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6A385551-E95F-4578-B9D0-8C13A7ECBC97}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6A385551-E95F-4578-B9D0-8C13A7ECBC97}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/SynPlc/Program.cs b/SynPlc/Program.cs index e5dff12..73bd689 100644 --- a/SynPlc/Program.cs +++ b/SynPlc/Program.cs @@ -1,3 +1,24 @@ -// See https://aka.ms/new-console-template for more information +using NewLife.Extensions.Hosting.AgentService; +using SynPlc; -Console.WriteLine("Hello, World!"); \ No newline at end of file +// 授权示例 Authorization example +if (!HslCommunication.Authorization.SetAuthorizationCode("12a99167-05ff-4c89-936f-93d42033f882")) +{ + Console.WriteLine( "Authorization failed! The current program can only be used for 8 hours!" ); + return; // 激活失败应该退出系统 +} + +IHost host = Host.CreateDefaultBuilder(args) + .ConfigureServices(services => + { + services.AddHostedService(); + }) + .UseAgentService(options => + { + options.ServiceName = "TestWorker"; + options.DisplayName = "Worker服务测试"; + options.Description = "Worker服务的测试应用"; + }) + .Build(); + +await host.RunAsync(); \ No newline at end of file diff --git a/SynPlc/Properties/launchSettings.json b/SynPlc/Properties/launchSettings.json new file mode 100644 index 0000000..5910f62 --- /dev/null +++ b/SynPlc/Properties/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "SynPlc": { + "commandName": "Project", + "dotnetRunMessages": true, + "environmentVariables": { + "DOTNET_ENVIRONMENT": "Development" + } + } + } +} diff --git a/SynPlc/SynPlc.csproj b/SynPlc/SynPlc.csproj index 572c113..4f21233 100644 --- a/SynPlc/SynPlc.csproj +++ b/SynPlc/SynPlc.csproj @@ -1,11 +1,16 @@ - + - Exe net6.0 - 12 - enable enable + enable + dotnet-SynPlc-486627e3-08b3-4b04-97e3-7ebc131a9edf + + + + + + diff --git a/SynPlc/Worker.cs b/SynPlc/Worker.cs new file mode 100644 index 0000000..6f5cdd7 --- /dev/null +++ b/SynPlc/Worker.cs @@ -0,0 +1,20 @@ +namespace SynPlc; + +public class Worker : BackgroundService +{ + private readonly ILogger _logger; + + public Worker(ILogger 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); + } + } +} \ No newline at end of file diff --git a/SynPlc/appsettings.Development.json b/SynPlc/appsettings.Development.json new file mode 100644 index 0000000..b2dcdb6 --- /dev/null +++ b/SynPlc/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.Hosting.Lifetime": "Information" + } + } +} diff --git a/SynPlc/appsettings.json b/SynPlc/appsettings.json new file mode 100644 index 0000000..b2dcdb6 --- /dev/null +++ b/SynPlc/appsettings.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.Hosting.Lifetime": "Information" + } + } +}