.net6 winform项目 添加webapi

发布时间 2023-12-08 17:03:22作者: 凉生凉忆亦凉心
默认创建.net6winform项目时,框架只有下面两个

 剩下的一个通过编辑项目文件 添加截图的代码

<!--winform项目添加AspNetCore SDK -->
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

修改Program文件  修改完成webpai就和winform共存啦

 

 internal static class Program
 {
     static Mutex mutex = new Mutex(true, "CallClientMutex");
     /// <summary>
     ///  The main entry point for the application.
     /// </summary>
     [STAThread]
     static void Main(string[] args)
     {
         if (mutex.WaitOne(TimeSpan.Zero, true))
         {
             Task.Run(() => StartWebServer());
             ApplicationConfiguration.Initialize();
             Application.Run(new Main());
             mutex.ReleaseMutex();
         }
         else
         {
             MessageBox.Show("应用程序已经在运行中!");
         }
     }
     private static void StartWebServer()
     {
         var builder = WebApplication.CreateBuilder();
         // Add services to the container.
         builder.Services.AddSingleton(new Appsettings(builder.Configuration));
         builder.AddSerilog();
         builder.Services.AddCorsSetup();
         builder.Services.AddSignalR().AddNewtonsoftJsonProtocol();

         builder.Services.AddHostedService<HubClientService>();
         builder.Services.AddHostedService<SoundService>();

         builder.Services.Configure<KestrelServerOptions>(builder.Configuration.GetSection("Kestrel"));
         builder.Services.AddControllers();

         var app = builder.Build();
         // Configure the HTTP request pipeline.
         //跨域
         app.UseCors("Cors");
         app.UseDefaultFiles();
         // 启用默认静态资源目录(wwwroot)
         app.UseStaticFiles();
         var baseDirec = Path.Combine(AppContext.BaseDirectory, "webfile");
         if (!Directory.Exists(baseDirec)) Directory.CreateDirectory(baseDirec);
         app.UseFileServer(new FileServerOptions()
         {
             FileProvider = new PhysicalFileProvider(baseDirec),
             RequestPath = new PathString("/webfile"),
             EnableDirectoryBrowsing = false
         });
         app.UseStatusCodePages();
         app.UseRouting();

         app.UseEndpoints(endpoints =>
         {
             endpoints.MapHub<ChatHub>("/hub");
             endpoints.MapControllers();
         });
         app.Run();
     }