diff --git a/.gitignore b/.gitignore
index 98c4cdd..997839b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,7 +2,6 @@
bin/
obj/
publish/
-*.zip
# Skripte aus publish/ im Root behalten
!install-service.ps1
diff --git a/Directory.Build.props b/Directory.Build.props
deleted file mode 100644
index e19a91c..0000000
--- a/Directory.Build.props
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
- true
- win-x64
-
- $([System.String]::Copy('1.0.0'))
-
-
-
-
-
-
-
-
- $(GitTagRaw.TrimStart('v').Trim())
- $(GitTagClean)
- $(GitTagClean).0
- $(GitTagClean).0
-
-
-
-
diff --git a/MailPrint/MailPrint.csproj b/MailPrint/MailPrint.csproj
index bf4ea0a..0406fa1 100644
--- a/MailPrint/MailPrint.csproj
+++ b/MailPrint/MailPrint.csproj
@@ -8,10 +8,9 @@
MailPrint
MailPrint
Exe
- true
- win-x64
- true
- $(NoWarn);1591
+ 1.0.0
+ 1.0.0.0
+ 1.0.0.0
diff --git a/MailPrint/Program.cs b/MailPrint/Program.cs
index 50c158b..3e3c5a8 100644
--- a/MailPrint/Program.cs
+++ b/MailPrint/Program.cs
@@ -51,34 +51,7 @@ try
builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c =>
- {
- c.SwaggerDoc("v1", new() { Title = "MailPrint API", Version = "v1" });
-
- // XML-Doku aus /// Kommentaren in OpenAPI uebernehmen
- var xmlPath = Path.Combine(AppContext.BaseDirectory, "MailPrint.xml");
- if (File.Exists(xmlPath))
- c.IncludeXmlComments(xmlPath);
-
- // API-Key-Security im Schema dokumentieren -> generierte Clients
- // setzen den Header automatisch, Swagger UI hat Authorize-Button
- var scheme = new Microsoft.OpenApi.Models.OpenApiSecurityScheme
- {
- Name = "X-Api-Key",
- Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey,
- In = Microsoft.OpenApi.Models.ParameterLocation.Header,
- Description = "API-Key fuer alle /api/* Endpunkte. Konfiguriert in MailPrintConfig.",
- Reference = new Microsoft.OpenApi.Models.OpenApiReference
- {
- Type = Microsoft.OpenApi.Models.ReferenceType.SecurityScheme,
- Id = "ApiKey"
- }
- };
- c.AddSecurityDefinition("ApiKey", scheme);
- c.AddSecurityRequirement(new Microsoft.OpenApi.Models.OpenApiSecurityRequirement
- {
- [scheme] = Array.Empty()
- });
- });
+ c.SwaggerDoc("v1", new() { Title = "MailPrint API", Version = "v1" }));
var app = builder.Build();
app.UseSwagger();
diff --git a/MailPrintConfig/MailPrintConfig.csproj b/MailPrintConfig/MailPrintConfig.csproj
index 4d09e5e..f78cb16 100644
--- a/MailPrintConfig/MailPrintConfig.csproj
+++ b/MailPrintConfig/MailPrintConfig.csproj
@@ -8,14 +8,13 @@
true
MailPrintConfig
MailPrintConfig
- true
- win-x64
- app.manifest
+ 1.0.0
+ 1.0.0.0
+ 1.0.0.0
-
diff --git a/MailPrintConfig/MainForm.cs b/MailPrintConfig/MainForm.cs
index 5d98a89..aa4d363 100644
--- a/MailPrintConfig/MainForm.cs
+++ b/MailPrintConfig/MainForm.cs
@@ -491,17 +491,6 @@ public class MainForm : Form
?? Path.Combine(AppContext.BaseDirectory, "appsettings.json");
}
- private static bool IsServiceRunning()
- {
- try
- {
- var svc = System.ServiceProcess.ServiceController.GetServices()
- .FirstOrDefault(s => s.ServiceName == ServiceName);
- return svc?.Status == System.ServiceProcess.ServiceControllerStatus.Running;
- }
- catch { return false; }
- }
-
private void BrowseFolder(int rowIndex)
{
string? result = null;
@@ -725,23 +714,6 @@ public class MainForm : Form
Directory.CreateDirectory(Path.GetDirectoryName(path)!);
File.WriteAllText(path, root.ToString(Formatting.Indented));
SetStatus($"Gespeichert: {path}", Color.DarkGreen);
-
- // Dienst-Neustart anbieten wenn Dienst läuft
- if (IsServiceRunning())
- {
- if (MessageBox.Show(
- "Konfiguration gespeichert.\n\nDienst jetzt neu starten um Änderungen zu übernehmen?",
- "Dienst neu starten?",
- MessageBoxButtons.YesNo,
- MessageBoxIcon.Question) == DialogResult.Yes)
- {
- _ = ServiceActionAsync("stop").ContinueWith(async _ =>
- {
- await Task.Delay(1500);
- await ServiceActionAsync("start");
- });
- }
- }
}
catch (Exception ex) { SetStatus($"Fehler: {ex.Message}", Color.Red); }
}
@@ -813,10 +785,10 @@ public class MainForm : Form
private async Task ServiceActionAsync(string action)
{
- var publishDir = Path.GetDirectoryName(txtConfigPath.Text) ?? AppContext.BaseDirectory;
- var exePath = Path.Combine(publishDir, "MailPrint.exe");
- var installPs = Path.Combine(publishDir, "install-service.ps1");
- var uninstallPs = Path.Combine(publishDir, "uninstall-service.ps1");
+ var publishDir = Path.GetDirectoryName(txtConfigPath.Text) ?? AppContext.BaseDirectory;
+ var exePath = Path.Combine(publishDir, "MailPrint.exe");
+ var installPs = Path.Combine(publishDir, "..", "install-service.ps1");
+ var uninstallPs= Path.Combine(publishDir, "..", "uninstall-service.ps1");
// Bestätigung nur bei Install/Deinstall
if (action is "install" or "uninstall")
@@ -846,13 +818,12 @@ public class MainForm : Form
{
FileName = "powershell",
Arguments = $"-NoProfile -NonInteractive {cmd}",
- UseShellExecute = false,
- CreateNoWindow = true,
- RedirectStandardError = true
+ UseShellExecute = true,
+ Verb = "runas",
+ WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden
};
using var p = System.Diagnostics.Process.Start(psi)!;
- string err = await p.StandardError.ReadToEndAsync();
await p.WaitForExitAsync();
if (p.ExitCode == 0)
@@ -869,7 +840,7 @@ public class MainForm : Form
MessageBox.Show(successMsg, "Erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
- SetStatus($"'{action}' fehlgeschlagen (Code {p.ExitCode}): {err.Trim()}", Color.Red);
+ SetStatus($"'{action}' fehlgeschlagen (Code {p.ExitCode})", Color.Red);
}
catch (Exception ex) { SetStatus($"Fehler: {ex.Message}", Color.Red); }
finally { DisableServiceButtons(false); RefreshStartStop(); }
diff --git a/MailPrintConfig/Program.cs b/MailPrintConfig/Program.cs
index 68c48fd..eec6102 100644
--- a/MailPrintConfig/Program.cs
+++ b/MailPrintConfig/Program.cs
@@ -1,12 +1,5 @@
using MailPrintConfig;
-class Program
-{
- [STAThread]
- static void Main()
- {
- Application.EnableVisualStyles();
- Application.SetCompatibleTextRenderingDefault(false);
- Application.Run(new MainForm());
- }
-}
+Application.EnableVisualStyles();
+Application.SetCompatibleTextRenderingDefault(false);
+Application.Run(new MainForm());
diff --git a/MailPrintConfig/app.manifest b/MailPrintConfig/app.manifest
deleted file mode 100644
index 07e6554..0000000
--- a/MailPrintConfig/app.manifest
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/build.bat b/build.bat
new file mode 100644
index 0000000..df03f5f
--- /dev/null
+++ b/build.bat
@@ -0,0 +1,17 @@
+@echo off
+setlocal
+set PROJ=C:\Users\janwu\OneDrive - dimedtec GmbH\Programmierung\MailPrint\MailPrint\MailPrint.csproj
+dotnet restore "%PROJ%"
+if errorlevel 1 goto :err
+dotnet build "%PROJ%" -c Release
+if errorlevel 1 goto :err
+dotnet publish "%PROJ%" -c Release -r win-x64 --self-contained false -o "C:\Users\janwu\OneDrive - dimedtec GmbH\Programmierung\MailPrint\publish"
+if errorlevel 1 goto :err
+echo.
+echo === BUILD ERFOLGREICH ===
+goto :end
+:err
+echo.
+echo === BUILD FEHLGESCHLAGEN ===
+exit /b 1
+:end