diff --git a/FastGithub/FastGithub.csproj b/FastGithub/FastGithub.csproj
index 907e1a3..469bbb7 100644
--- a/FastGithub/FastGithub.csproj
+++ b/FastGithub/FastGithub.csproj
@@ -6,12 +6,18 @@
net5.0;net6.0
true
1.0.0-beta2
+ github定制版的dns服务,解析github最优的ip
+ MIT
true
+
+
+
+
diff --git a/FastGithub/HostBuilderExtensions.cs b/FastGithub/HostBuilderExtensions.cs
new file mode 100644
index 0000000..87d016a
--- /dev/null
+++ b/FastGithub/HostBuilderExtensions.cs
@@ -0,0 +1,44 @@
+using Microsoft.Extensions.Hosting;
+using System;
+using System.Reflection;
+using Topshelf;
+
+namespace FastGithub
+{
+ static class HostBuilderExtensions
+ {
+ ///
+ /// topShelf管理运行
+ ///
+ ///
+ ///
+ public static void RunAsTopShelf(this IHostBuilder hostBuilder)
+ {
+ if (OperatingSystem.IsWindows())
+ {
+ HostFactory.Run(c =>
+ {
+ var assembly = typeof(HostBuilderExtensions).Assembly;
+ var assemblyName = assembly.GetName().Name;
+ var assemblyDescription = assembly.GetCustomAttribute();
+
+ c.RunAsLocalSystem();
+
+ c.SetServiceName(assemblyName);
+ c.SetDisplayName(assemblyName);
+ c.SetDescription(assemblyDescription?.Description);
+
+ c.Service(service => service
+ .ConstructUsing(() => hostBuilder.Build())
+ .WhenStarted(service => service.Start())
+ .WhenStopped(service => service.StopAsync())
+ );
+ });
+ }
+ else
+ {
+ hostBuilder.Build().Run();
+ }
+ }
+ }
+}
diff --git a/FastGithub/Program.cs b/FastGithub/Program.cs
index 916f2bd..a4fe162 100644
--- a/FastGithub/Program.cs
+++ b/FastGithub/Program.cs
@@ -10,7 +10,7 @@ namespace FastGithub
///
public static void Main(string[] args)
{
- CreateHostBuilder(args).Build().Run();
+ CreateHostBuilder(args).RunAsTopShelf();
}
///