diff --git a/.gitignore b/.gitignore
index 4cd989e..03c7e27 100644
--- a/.gitignore
+++ b/.gitignore
@@ -450,3 +450,5 @@ fabric.properties
.idea/
/.idea
/src/ZonyLrcTools.Cli/TempFiles/
+
+src/ZonyLrcTools.LocalServer/UiStaticResources/*
\ No newline at end of file
diff --git a/ZonyLrcTools.sln b/ZonyLrcTools.sln
index 1cade50..59ba155 100644
--- a/ZonyLrcTools.sln
+++ b/ZonyLrcTools.sln
@@ -6,9 +6,6 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{C29FB05C-54B1-4020-94D2-87E192EB2F98}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{AF8ADB2F-E46C-4DEE-8316-652D9FE1A69B}"
- ProjectSection(SolutionItems) = preProject
- tests\.gitignore = tests\.gitignore
- EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZonyLrcTools.Cli", "src\ZonyLrcTools.Cli\ZonyLrcTools.Cli.csproj", "{55D74323-ABFA-4A73-A3BF-F3E8D5DE6DE8}"
EndProject
diff --git a/src/ZonyLrcTools.LocalServer/Program.cs b/src/ZonyLrcTools.LocalServer/Program.cs
index b9baca1..9144d52 100644
--- a/src/ZonyLrcTools.LocalServer/Program.cs
+++ b/src/ZonyLrcTools.LocalServer/Program.cs
@@ -1,3 +1,4 @@
+using System.Diagnostics;
using ZonyLrcTools.LocalServer;
var app = RegisterAndConfigureServices();
@@ -12,25 +13,42 @@ async Task ListenServices()
WebApplication? RegisterAndConfigureServices()
{
var builder = WebApplication.CreateBuilder(args);
-
-// Add services to the container.
+ builder.WebHost.ConfigureKestrel(k => k.ListenAnyIP(50002));
builder.Services.AddControllers();
-// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
- builder.Services.AddSwaggerGen();
- var app = builder.Build();
-
-// Configure the HTTP request pipeline.
- if (app.Environment.IsDevelopment())
+ var insideApp = builder.Build();
+ insideApp.UseSpaStaticFiles(new StaticFileOptions
{
- app.UseSwagger();
- app.UseSwaggerUI();
+ RequestPath = "",
+ FileProvider = new Microsoft.Extensions.FileProviders
+ .ManifestEmbeddedFileProvider(
+ typeof(Program).Assembly, "UiStaticResources"
+ )
+ });
+
+ insideApp.UseAuthorization();
+ insideApp.MapControllers();
+ insideApp.Lifetime.ApplicationStarted.Register(OpenBrowser);
+
+ return insideApp;
+}
+
+void OpenBrowser()
+{
+ const string url = "http://localhost:50002/index.html";
+
+ if (OperatingSystem.IsWindows())
+ {
+ Process.Start("explorer.exe", url);
+ }
+ else if (OperatingSystem.IsMacOS())
+ {
+ Process.Start("open", url);
+ }
+ else if (OperatingSystem.IsLinux())
+ {
+ Process.Start("xdg-open", url);
}
-
- app.UseAuthorization();
- app.MapControllers();
-
- return app;
}
\ No newline at end of file
diff --git a/src/ZonyLrcTools.LocalServer/Properties/launchSettings.json b/src/ZonyLrcTools.LocalServer/Properties/launchSettings.json
index 4621ca5..1b34c0f 100644
--- a/src/ZonyLrcTools.LocalServer/Properties/launchSettings.json
+++ b/src/ZonyLrcTools.LocalServer/Properties/launchSettings.json
@@ -5,7 +5,6 @@
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
- "launchUrl": "swagger",
"applicationUrl": "http://localhost:50002",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
diff --git a/src/ZonyLrcTools.LocalServer/ZonyLrcTools.LocalServer.csproj b/src/ZonyLrcTools.LocalServer/ZonyLrcTools.LocalServer.csproj
index 4329fec..f1d2899 100644
--- a/src/ZonyLrcTools.LocalServer/ZonyLrcTools.LocalServer.csproj
+++ b/src/ZonyLrcTools.LocalServer/ZonyLrcTools.LocalServer.csproj
@@ -4,23 +4,26 @@
net6.0
enable
enable
+ true
+
+
-
-
+
+
-
-
-
+
+
+