Initial commit

This commit is contained in:
administrator 2026-04-17 00:00:02 +02:00
commit 3808f2247a
1088 changed files with 12591 additions and 0 deletions

View file

@ -0,0 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<OutputType>WinExe</OutputType>
<UseWindowsForms>true</UseWindowsForms>
<RootNamespace>MailPrintConfig</RootNamespace>
<AssemblyName>MailPrintConfig</AssemblyName>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
</ItemGroup>
</Project>

657
MailPrintConfig/MainForm.cs Normal file
View file

@ -0,0 +1,657 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Drawing.Printing;
namespace MailPrintConfig;
public class MainForm : Form
{
private const int LabelW = 140;
private const int CtrlW = 240;
private const int RowH = 28;
private const int Pad = 12;
// ── Allgemein ─────────────────────────────────────────────────
private TextBox txtInterval = null!, txtSubjectFilter = null!, txtTempDir = null!, txtSumatraPath = null!;
private CheckBox chkDelete = null!, chkMarkRead = null!;
// ── Web API ───────────────────────────────────────────────────
private TextBox txtApiPort = null!, txtApiKey = null!;
private CheckBox chkBindAll = null!;
// ── Grids ─────────────────────────────────────────────────────
private DataGridView gridProfiles = null!, gridAccounts = null!;
// ── Filter ────────────────────────────────────────────────────
private TextBox txtGlobalAllowed = null!, txtGlobalBlocked = null!;
// ── Config / Steuerung ────────────────────────────────────────
private TextBox txtConfigPath = null!;
private Button btnLoad = null!, btnSave = null!, btnStartStop = null!;
private Label lblStatus = null!;
private System.Diagnostics.Process? _proc;
private System.Windows.Forms.Timer _timer = null!;
public MainForm()
{
Text = "MailPrint Konfiguration";
Width = 1100; MinimumSize = new Size(900, 700);
Font = new Font("Segoe UI", 9f);
StartPosition = FormStartPosition.CenterScreen;
BuildUI();
AutoDetectConfigPath();
Load += (_, _) => { if (File.Exists(txtConfigPath.Text)) LoadConfig(); };
_timer = new System.Windows.Forms.Timer { Interval = 1500 };
_timer.Tick += (_, _) => RefreshStartStop();
_timer.Start();
}
// ══════════════════════════════════════════════════════════════
// UI
// ══════════════════════════════════════════════════════════════
private void BuildUI()
{
var tabs = new TabControl { Dock = DockStyle.Fill };
tabs.TabPages.Add(BuildProfilesTab());
tabs.TabPages.Add(BuildAccountsTab());
tabs.TabPages.Add(BuildFilterTab());
tabs.TabPages.Add(BuildApiTab());
tabs.TabPages.Add(BuildGeneralTab());
tabs.TabPages.Add(BuildAboutTab());
Controls.Add(tabs);
var bottom = new Panel { Dock = DockStyle.Bottom, Height = 84 };
int x = Pad;
btnLoad = Btn("Laden", x, 10, 84); x += 90;
btnSave = Btn("Speichern", x, 10, 84); x += 90;
btnStartStop = Btn("▶ Starten", x, 10, 110, Color.LightGreen); x += 116;
var btnBrowse = Btn("Pfad…", x, 10, 64); x += 70;
txtConfigPath = new TextBox { Left = x, Top = 12, Width = 340, Anchor = AnchorStyles.Left | AnchorStyles.Top };
lblStatus = new Label { Left = Pad, Top = 46, Width = 820, Height = 30, AutoSize = false, ForeColor = Color.DarkGreen };
btnLoad.Click += (_, _) => LoadConfig();
btnSave.Click += (_, _) => SaveConfig();
btnStartStop.Click += (_, _) => _ = ToggleServiceAsync();
btnBrowse.Click += (_, _) => BrowseConfig();
bottom.Controls.AddRange([btnLoad, btnSave, btnStartStop, btnBrowse, txtConfigPath, lblStatus]);
Controls.Add(bottom);
}
// ── Tab: Drucker-Profile ──────────────────────────────────────
private TabPage BuildProfilesTab()
{
var tab = new TabPage("Drucker-Profile");
tab.Controls.Add(new Label
{
Text = "Profil = Drucker + Papierfach + optionale Absender-Filter (überschreibt globale Filter).",
Left = Pad, Top = Pad, Width = 1060, Height = 18, ForeColor = Color.DimGray
});
gridProfiles = new DataGridView
{
Left = Pad, Top = 32, Width = 1060, Height = 500,
Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom,
AllowUserToAddRows = true, AllowUserToDeleteRows = false,
AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None,
ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize,
EditMode = DataGridViewEditMode.EditOnEnter,
SelectionMode = DataGridViewSelectionMode.FullRowSelect,
ScrollBars = ScrollBars.Both
};
gridProfiles.Columns.Add(new DataGridViewTextBoxColumn { Name = "PName", HeaderText = "Profil-Name", Width = 120 });
var colPrinter = new DataGridViewComboBoxColumn { Name = "Printer", HeaderText = "Drucker", FlatStyle = FlatStyle.Flat, Width = 280 };
colPrinter.Items.Add("");
foreach (string p in PrinterSettings.InstalledPrinters) colPrinter.Items.Add(p);
gridProfiles.Columns.Add(colPrinter);
var colSource = new DataGridViewComboBoxColumn { Name = "Source", HeaderText = "Papierfach", FlatStyle = FlatStyle.Flat, Width = 150 };
colSource.Items.Add("");
gridProfiles.Columns.Add(colSource);
gridProfiles.Columns.Add(new DataGridViewTextBoxColumn { Name = "Copies", HeaderText = "Kopien", Width = 55 });
gridProfiles.Columns.Add(new DataGridViewTextBoxColumn { Name = "Allowed", HeaderText = "Whitelist (Komma)", Width = 200 });
gridProfiles.Columns.Add(new DataGridViewTextBoxColumn { Name = "Blocked", HeaderText = "Blacklist (Komma)", Width = 200 });
gridProfiles.DataError += (_, e) => e.ThrowException = false;
gridProfiles.CellValueChanged += GridProfiles_CellValueChanged;
gridProfiles.CurrentCellDirtyStateChanged += (_, _) =>
{
if (gridProfiles.IsCurrentCellDirty) gridProfiles.CommitEdit(DataGridViewDataErrorContexts.Commit);
};
AttachContextMenu(gridProfiles);
tab.Controls.Add(gridProfiles);
return tab;
}
// ── Tab: Postfächer ───────────────────────────────────────────
private TabPage BuildAccountsTab()
{
var tab = new TabPage("Postfächer");
tab.Controls.Add(new Label
{
Text = "Jedes Postfach wird unabhängig abgerufen und druckt auf das zugeordnete Drucker-Profil.",
Left = Pad, Top = Pad, Width = 1060, Height = 18, ForeColor = Color.DimGray
});
gridAccounts = new DataGridView
{
Left = Pad, Top = 32, Width = 1060, Height = 500,
Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom,
AllowUserToAddRows = true, AllowUserToDeleteRows = false,
AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None,
ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize,
EditMode = DataGridViewEditMode.EditOnEnter,
SelectionMode = DataGridViewSelectionMode.FullRowSelect,
ScrollBars = ScrollBars.Both
};
gridAccounts.Columns.Add(new DataGridViewTextBoxColumn { Name = "AName", HeaderText = "Name", Width = 100 });
var colProto = new DataGridViewComboBoxColumn { Name = "Protocol", HeaderText = "Protokoll", FlatStyle = FlatStyle.Flat, Width = 70 };
colProto.Items.AddRange(["IMAP", "POP3"]);
gridAccounts.Columns.Add(colProto);
gridAccounts.Columns.Add(new DataGridViewTextBoxColumn { Name = "Host", HeaderText = "Host", Width = 200 });
gridAccounts.Columns.Add(new DataGridViewTextBoxColumn { Name = "Port", HeaderText = "Port", Width = 52 });
gridAccounts.Columns.Add(new DataGridViewCheckBoxColumn { Name = "Ssl", HeaderText = "SSL", Width = 38 });
gridAccounts.Columns.Add(new DataGridViewTextBoxColumn { Name = "User", HeaderText = "Benutzername", Width = 180 });
gridAccounts.Columns.Add(new DataGridViewTextBoxColumn { Name = "Pass", HeaderText = "Passwort", Width = 180 });
gridAccounts.Columns.Add(new DataGridViewTextBoxColumn { Name = "Folder", HeaderText = "Ordner", Width = 80 });
var colProfile = new DataGridViewComboBoxColumn { Name = "Profile", HeaderText = "Drucker-Profil", FlatStyle = FlatStyle.Flat, Width = 150 };
colProfile.Items.Add("");
gridAccounts.Columns.Add(colProfile);
gridAccounts.DataError += (_, e) => e.ThrowException = false;
gridProfiles.CellValueChanged += (_, _) => RefreshProfileDropdowns();
AttachContextMenu(gridAccounts);
tab.Controls.Add(gridAccounts);
return tab;
}
// ── Tab: Filter ───────────────────────────────────────────────
private TabPage BuildFilterTab()
{
var tab = new TabPage("Filter (Global)");
int y = Pad;
tab.Controls.Add(new Label
{
Text = "Globale Listen gelten für alle Profile, sofern das Profil keine eigene Liste definiert.\r\n" +
"Format: eine E-Mail-Adresse pro Zeile. Leer = kein Filter.",
Left = Pad, Top = y, Width = 800, Height = 34, ForeColor = Color.DimGray
});
y += 40;
tab.Controls.Add(new Label { Text = "Whitelist (nur diese Absender drucken):", Left = Pad, Top = y, Width = 380, AutoSize = false });
tab.Controls.Add(new Label { Text = "Blacklist (diese Absender blockieren):", Left = Pad + 420, Top = y, Width = 380, AutoSize = false });
y += 20;
txtGlobalAllowed = new TextBox
{
Left = Pad, Top = y, Width = 390, Height = 400,
Multiline = true, ScrollBars = ScrollBars.Vertical,
Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Bottom
};
txtGlobalBlocked = new TextBox
{
Left = Pad + 420, Top = y, Width = 390, Height = 400,
Multiline = true, ScrollBars = ScrollBars.Vertical,
Anchor = AnchorStyles.Left | AnchorStyles.Top | AnchorStyles.Bottom
};
tab.Controls.Add(txtGlobalAllowed);
tab.Controls.Add(txtGlobalBlocked);
return tab;
}
// ── Tab: Web API ──────────────────────────────────────────────
private TabPage BuildApiTab()
{
var tab = new TabPage("Web API");
int y = Pad;
txtApiPort = AddText(tab, "Port", ref y, "5100");
chkBindAll = AddCheck(tab, "Alle Interfaces (0.0.0.0)", ref y, false);
txtApiKey = AddText(tab, "API-Key", ref y);
var btnGen = Btn("🔑 Generieren", LabelW + Pad, y, 130);
btnGen.Click += (_, _) => txtApiKey.Text = Guid.NewGuid().ToString("N");
tab.Controls.Add(btnGen); y += RowH + 4;
tab.Controls.Add(new Label
{
Text = "Header: X-Api-Key: <key> | Leer = kein Schutz\r\n\r\n" +
"POST /api/print/upload (multipart: file, printer, paperSource, copies)\r\n" +
"POST /api/print/url { url, printer, paperSource, copies }\r\n" +
"GET /api/print/printers\r\nGET /api/print/health\r\nGET /swagger",
Left = Pad, Top = y, Width = 700, Height = 110, ForeColor = Color.DimGray
});
return tab;
}
// ── Tab: Allgemein ────────────────────────────────────────────
private TabPage BuildGeneralTab()
{
var tab = new TabPage("Allgemein");
int y = Pad;
txtInterval = AddText(tab, "Intervall (Sek.)", ref y, "60");
txtSubjectFilter = AddText(tab, "Betreff-Filter", ref y);
chkDelete = AddCheck(tab, "Nach Druck löschen", ref y, true);
chkMarkRead = AddCheck(tab, "Als gelesen markieren", ref y, true);
txtSumatraPath = AddText(tab, "SumatraPDF Pfad", ref y);
var btnS = Btn("…", LabelW + Pad + CtrlW + 4, y - RowH - 2, 28);
btnS.Click += (_, _) =>
{
using var d = new OpenFileDialog { Filter = "SumatraPDF.exe|SumatraPDF.exe|Alle|*.*" };
if (d.ShowDialog() == DialogResult.OK) txtSumatraPath.Text = d.FileName;
};
tab.Controls.Add(btnS);
txtTempDir = AddText(tab, "Temp-Verzeichnis", ref y, Path.Combine(Path.GetTempPath(), "MailPrint"));
return tab;
}
// ── Tab: Über ───────────────────────────────────────────────────
private TabPage BuildAboutTab()
{
var tab = new TabPage("Über");
int y = Pad + 10;
void AddLine(string text, bool link = false, string url = "")
{
if (link)
{
var lbl = new LinkLabel
{
Text = text, Left = Pad, Top = y, AutoSize = true,
Font = new Font("Segoe UI", 10f)
};
lbl.LinkClicked += (_, _) => System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(url) { UseShellExecute = true });
tab.Controls.Add(lbl);
}
else
{
tab.Controls.Add(new Label
{
Text = text, Left = Pad, Top = y, AutoSize = true,
Font = new Font("Segoe UI", 10f)
});
}
y += 28;
}
AddLine("MailPrint");
y += 4;
AddLine("Automatischer PDF-Druck per E-Mail und REST API.");
AddLine("Kostenlos und quelloffen (MIT-Lizenz).");
y += 16;
AddLine("Quellcode & Dokumentation:");
AddLine("https://github.com/dimedtec/mailprint", link: true, url: "https://github.com/dimedtec/mailprint");
y += 16;
AddLine("Verwendet:");
AddLine("SumatraPDF freier PDF-Viewer (GPLv3)");
AddLine("https://www.sumatrapdfreader.org", link: true, url: "https://www.sumatrapdfreader.org");
y += 8;
AddLine("MailKit IMAP/POP3 Bibliothek (MIT)");
AddLine("https://github.com/jstedfast/MailKit", link: true, url: "https://github.com/jstedfast/MailKit");
y += 8;
AddLine(".NET Microsoft (MIT)");
AddLine("https://dotnet.microsoft.com", link: true, url: "https://dotnet.microsoft.com");
return tab;
}
// ── Kontextmenü für Grids ──────────────────────────────────────
private static void AttachContextMenu(DataGridView grid)
{
var menu = new ContextMenuStrip();
var itemDelete = new ToolStripMenuItem("🗑 Zeile löschen");
itemDelete.Click += (_, _) =>
{
foreach (DataGridViewRow row in grid.SelectedRows)
if (!row.IsNewRow) grid.Rows.Remove(row);
};
menu.Items.Add(itemDelete);
grid.MouseDown += (_, e) =>
{
if (e.Button != MouseButtons.Right) return;
var hit = grid.HitTest(e.X, e.Y);
if (hit.RowIndex >= 0)
{
grid.ClearSelection();
grid.Rows[hit.RowIndex].Selected = true;
menu.Show(grid, e.Location);
}
};
}
// ══════════════════════════════════════════════════════════════
// Papierfächer + Profil-Dropdown sync
// ══════════════════════════════════════════════════════════════
private void GridProfiles_CellValueChanged(object? sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex < 0 || gridProfiles.Columns[e.ColumnIndex].Name != "Printer") return;
var printerName = gridProfiles.Rows[e.RowIndex].Cells["Printer"].Value?.ToString() ?? "";
var sc = (DataGridViewComboBoxCell)gridProfiles.Rows[e.RowIndex].Cells["Source"];
sc.Items.Clear(); sc.Items.Add("");
if (!string.IsNullOrEmpty(printerName))
{
var ps = new PrinterSettings { PrinterName = printerName };
foreach (PaperSource src in ps.PaperSources) sc.Items.Add(src.SourceName);
}
}
private void RefreshProfileDropdowns()
{
var names = gridProfiles.Rows.Cast<DataGridViewRow>()
.Where(r => !r.IsNewRow)
.Select(r => r.Cells["PName"].Value?.ToString() ?? "")
.Where(n => n.Length > 0).ToList();
var col = (DataGridViewComboBoxColumn)gridAccounts.Columns["Profile"];
var current = col.Items.Cast<object>().Select(o => o.ToString()).ToList();
// nur hinzufügen was noch nicht drin ist, nichts entfernen (bestehende Werte bleiben gültig)
col.Items.Clear();
col.Items.Add("");
foreach (var n in names) col.Items.Add(n);
// bestehende Zellwerte die nicht mehr in der Liste sind trotzdem erhalten
foreach (DataGridViewRow row in gridAccounts.Rows)
{
if (row.IsNewRow) continue;
var val = row.Cells["Profile"].Value?.ToString() ?? "";
if (!string.IsNullOrEmpty(val) && !col.Items.Contains(val))
col.Items.Add(val);
}
}
// ══════════════════════════════════════════════════════════════
// Config laden / speichern
// ══════════════════════════════════════════════════════════════
private void AutoDetectConfigPath()
{
var candidates = new[]
{
Path.Combine(AppContext.BaseDirectory, "appsettings.json"),
Path.Combine(AppContext.BaseDirectory, "..", "publish", "appsettings.json"),
@"C:\Services\MailPrint\appsettings.json",
};
txtConfigPath.Text = candidates.FirstOrDefault(File.Exists)
?? Path.Combine(AppContext.BaseDirectory, "appsettings.json");
}
private void BrowseConfig()
{
using var d = new OpenFileDialog { Filter = "appsettings.json|appsettings.json|JSON|*.json" };
if (d.ShowDialog() == DialogResult.OK) txtConfigPath.Text = d.FileName;
}
private void LoadConfig()
{
if (!File.Exists(txtConfigPath.Text))
{ SetStatus($"Nicht gefunden: {txtConfigPath.Text}", Color.Red); return; }
try
{
var mp = (JObject.Parse(File.ReadAllText(txtConfigPath.Text))["MailPrint"] as JObject) ?? new JObject();
txtInterval.Text = mp["PollIntervalSeconds"]?.ToString() ?? "60";
txtSubjectFilter.Text = mp["SubjectFilter"]?.ToString() ?? "";
chkDelete.Checked = mp["DeleteAfterPrint"]?.Value<bool>() ?? true;
chkMarkRead.Checked = mp["MarkAsRead"]?.Value<bool>() ?? true;
txtSumatraPath.Text = mp["SumatraPath"]?.ToString() ?? "";
txtTempDir.Text = mp["TempDirectory"]?.ToString() ?? "";
// Globale Filter
txtGlobalAllowed.Text = string.Join(Environment.NewLine,
(mp["AllowedSenders"] as JArray ?? new JArray()).Select(t => t.ToString()));
txtGlobalBlocked.Text = string.Join(Environment.NewLine,
(mp["BlockedSenders"] as JArray ?? new JArray()).Select(t => t.ToString()));
var api = mp["WebApi"] as JObject ?? new JObject();
txtApiPort.Text = api["Port"]?.ToString() ?? "5100";
chkBindAll.Checked = api["BindAllInterfaces"]?.Value<bool>() ?? false;
txtApiKey.Text = api["ApiKey"]?.ToString() ?? "";
// Drucker-Profile
gridProfiles.Rows.Clear();
var printerCol = (DataGridViewComboBoxColumn)gridProfiles.Columns["Printer"];
foreach (var p in mp["PrinterProfiles"] as JArray ?? new JArray())
{
var printer = p["PrinterName"]?.ToString() ?? "";
var source = p["PaperSource"]?.ToString() ?? "";
var allowed = string.Join(", ", (p["AllowedSenders"] as JArray ?? new JArray()).Select(t => t.ToString()));
var blocked = string.Join(", ", (p["BlockedSenders"] as JArray ?? new JArray()).Select(t => t.ToString()));
if (!printerCol.Items.Contains(printer) && !string.IsNullOrEmpty(printer))
printerCol.Items.Add(printer);
int ri = gridProfiles.Rows.Add(
p["Name"]?.ToString() ?? "", printer, "", p["Copies"]?.ToString() ?? "1", allowed, blocked);
var sc = (DataGridViewComboBoxCell)gridProfiles.Rows[ri].Cells["Source"];
sc.Items.Clear(); sc.Items.Add("");
if (!string.IsNullOrEmpty(printer))
{
var ps = new PrinterSettings { PrinterName = printer };
foreach (PaperSource s in ps.PaperSources) sc.Items.Add(s.SourceName);
}
if (!sc.Items.Contains(source) && !string.IsNullOrEmpty(source)) sc.Items.Add(source);
sc.Value = source;
}
RefreshProfileDropdowns();
// Postfächer
gridAccounts.Rows.Clear();
foreach (var a in mp["Accounts"] as JArray ?? new JArray())
{
var proto = a["Protocol"]?.ToString() ?? "IMAP";
var profName= a["PrinterProfileName"]?.ToString() ?? "";
var protoCol = (DataGridViewComboBoxColumn)gridAccounts.Columns["Protocol"];
if (!protoCol.Items.Contains(proto)) protoCol.Items.Add(proto);
var profCol = (DataGridViewComboBoxColumn)gridAccounts.Columns["Profile"];
if (!string.IsNullOrEmpty(profName) && !profCol.Items.Contains(profName))
profCol.Items.Add(profName);
gridAccounts.Rows.Add(
a["Name"]?.ToString() ?? "",
proto,
a["Host"]?.ToString() ?? "",
a["Port"]?.ToString() ?? "993",
a["UseSsl"]?.Value<bool>() ?? true,
a["Username"]?.ToString() ?? "",
a["Password"]?.ToString() ?? "",
a["Folder"]?.ToString() ?? "INBOX",
profName);
}
SetStatus($"Geladen: {txtConfigPath.Text}", Color.DarkGreen);
}
catch (Exception ex) { SetStatus($"Fehler: {ex.Message}", Color.Red); }
}
private void SaveConfig()
{
gridProfiles.EndEdit();
gridAccounts.EndEdit();
var path = txtConfigPath.Text;
var root = File.Exists(path) ? JObject.Parse(File.ReadAllText(path)) : new JObject();
var profiles = new JArray();
foreach (DataGridViewRow r in gridProfiles.Rows)
{
if (r.IsNewRow) continue;
profiles.Add(new JObject
{
["Name"] = r.Cells["PName"].Value?.ToString() ?? "",
["PrinterName"] = r.Cells["Printer"].Value?.ToString() ?? "",
["PaperSource"] = r.Cells["Source"].Value?.ToString() ?? "",
["Copies"] = int.TryParse(r.Cells["Copies"].Value?.ToString(), out int c) ? c : 1,
["AllowedSenders"] = ToJArray(r.Cells["Allowed"].Value?.ToString()),
["BlockedSenders"] = ToJArray(r.Cells["Blocked"].Value?.ToString())
});
}
var accounts = new JArray();
foreach (DataGridViewRow r in gridAccounts.Rows)
{
if (r.IsNewRow) continue;
accounts.Add(new JObject
{
["Name"] = r.Cells["AName"].Value?.ToString() ?? "",
["Protocol"] = r.Cells["Protocol"].Value?.ToString() ?? "IMAP",
["Host"] = r.Cells["Host"].Value?.ToString() ?? "",
["Port"] = int.TryParse(r.Cells["Port"].Value?.ToString(), out int p) ? p : 993,
["UseSsl"] = r.Cells["Ssl"].Value is true,
["Username"] = r.Cells["User"].Value?.ToString() ?? "",
["Password"] = r.Cells["Pass"].Value?.ToString() ?? "",
["Folder"] = r.Cells["Folder"].Value?.ToString() ?? "INBOX",
["PrinterProfileName"] = r.Cells["Profile"].Value?.ToString() ?? ""
});
}
root["MailPrint"] = new JObject
{
["PollIntervalSeconds"] = int.TryParse(txtInterval.Text, out int iv) ? iv : 60,
["SubjectFilter"] = txtSubjectFilter.Text,
["DeleteAfterPrint"] = chkDelete.Checked,
["MarkAsRead"] = chkMarkRead.Checked,
["SumatraPath"] = txtSumatraPath.Text,
["TempDirectory"] = txtTempDir.Text,
["AllowedExtensions"] = new JArray(".pdf"),
["AllowedSenders"] = ToJArray(txtGlobalAllowed.Text, multiline: true),
["BlockedSenders"] = ToJArray(txtGlobalBlocked.Text, multiline: true),
["PrinterProfiles"] = profiles,
["Accounts"] = accounts,
["WebApi"] = new JObject
{
["Port"] = int.TryParse(txtApiPort.Text, out int ap) ? ap : 5100,
["BindAllInterfaces"] = chkBindAll.Checked,
["ApiKey"] = txtApiKey.Text
}
};
if (root["Serilog"] == null)
root["Serilog"] = JObject.Parse("{\"MinimumLevel\":{\"Default\":\"Information\",\"Override\":{\"Microsoft\":\"Warning\",\"Microsoft.AspNetCore\":\"Warning\"}}}");
try
{
Directory.CreateDirectory(Path.GetDirectoryName(path)!);
File.WriteAllText(path, root.ToString(Formatting.Indented));
SetStatus($"Gespeichert: {path}", Color.DarkGreen);
}
catch (Exception ex) { SetStatus($"Fehler: {ex.Message}", Color.Red); }
}
// Komma- oder Zeilengetrennte Liste → JArray
private static JArray ToJArray(string? input, bool multiline = false)
{
if (string.IsNullOrWhiteSpace(input)) return new JArray();
var sep = multiline ? new[] { "\r\n", "\n" } : new[] { "," };
return new JArray(input.Split(sep, StringSplitOptions.RemoveEmptyEntries)
.Select(s => s.Trim()).Where(s => s.Length > 0));
}
// ══════════════════════════════════════════════════════════════
// Start / Stop
// ══════════════════════════════════════════════════════════════
private async Task ToggleServiceAsync()
{
btnStartStop.Enabled = false;
try
{
if (_proc is { HasExited: false })
{
_proc.Kill(entireProcessTree: true);
await _proc.WaitForExitAsync();
_proc = null;
SetStatus("MailPrint gestoppt.", Color.DarkOrange);
}
else
{
var exePath = Path.Combine(
Path.GetDirectoryName(txtConfigPath.Text) ?? AppContext.BaseDirectory,
"MailPrint.exe");
if (!File.Exists(exePath))
{ SetStatus($"MailPrint.exe nicht gefunden: {exePath}", Color.Red); return; }
_proc = new System.Diagnostics.Process
{
StartInfo = new System.Diagnostics.ProcessStartInfo(exePath)
{
UseShellExecute = true,
WorkingDirectory = Path.GetDirectoryName(exePath)!
},
EnableRaisingEvents = true
};
_proc.Exited += (_, _) => BeginInvoke(RefreshStartStop);
_proc.Start();
SetStatus($"MailPrint gestartet (PID {_proc.Id})", Color.DarkGreen);
}
}
finally { btnStartStop.Enabled = true; RefreshStartStop(); }
}
private void RefreshStartStop()
{
if (InvokeRequired) { BeginInvoke(RefreshStartStop); return; }
bool running = _proc is { HasExited: false };
btnStartStop.Text = running ? "⏹ Stoppen" : "▶ Starten";
btnStartStop.BackColor = running ? Color.LightCoral : Color.LightGreen;
}
// ══════════════════════════════════════════════════════════════
// Hilfsmethoden
// ══════════════════════════════════════════════════════════════
private void SetStatus(string msg, Color color)
{
if (InvokeRequired) { BeginInvoke(() => SetStatus(msg, color)); return; }
lblStatus.Text = msg; lblStatus.ForeColor = color;
}
private static Button Btn(string text, int x, int y, int w, Color? bg = null)
{
var b = new Button { Text = text, Left = x, Top = y, Width = w, Height = 26 };
if (bg.HasValue) b.BackColor = bg.Value;
return b;
}
private TextBox AddText(Control p, string label, ref int y, string def = "")
{
AddLabel(p, label, y);
var tb = new TextBox { Left = LabelW + Pad, Top = y, Width = CtrlW, Text = def };
p.Controls.Add(tb); y += RowH; return tb;
}
private CheckBox AddCheck(Control p, string label, ref int y, bool def)
{
var cb = new CheckBox { Text = label, Left = LabelW + Pad, Top = y, Width = CtrlW + 40, Checked = def };
p.Controls.Add(cb); y += RowH; return cb;
}
private static void AddLabel(Control p, string text, int y)
=> p.Controls.Add(new Label { Text = text + ":", Left = Pad, Top = y + 4, Width = LabelW, AutoSize = false });
protected override void OnFormClosing(FormClosingEventArgs e)
{
_timer.Stop();
base.OnFormClosing(e);
}
}

View file

@ -0,0 +1,5 @@
using MailPrintConfig;
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm());

View file

@ -0,0 +1,41 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"MailPrintConfig/1.0.0": {
"dependencies": {
"Newtonsoft.Json": "13.0.3"
},
"runtime": {
"MailPrintConfig.dll": {}
}
},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.3.27908"
}
}
}
}
},
"libraries": {
"MailPrintConfig/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
}
}
}

View file

@ -0,0 +1,20 @@
{
"runtimeOptions": {
"tfm": "net10.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "10.0.0"
},
{
"name": "Microsoft.WindowsDesktop.App",
"version": "10.0.0"
}
],
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
"CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false
}
}
}

View file

@ -0,0 +1,42 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0/win-x64",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {},
".NETCoreApp,Version=v10.0/win-x64": {
"MailPrintConfig/1.0.0": {
"dependencies": {
"Newtonsoft.Json": "13.0.3"
},
"runtime": {
"MailPrintConfig.dll": {}
}
},
"Newtonsoft.Json/13.0.3": {
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.3.27908"
}
}
}
}
},
"libraries": {
"MailPrintConfig/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Newtonsoft.Json/13.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"path": "newtonsoft.json/13.0.3",
"hashPath": "newtonsoft.json.13.0.3.nupkg.sha512"
}
}
}

View file

@ -0,0 +1,20 @@
{
"runtimeOptions": {
"tfm": "net10.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "10.0.0"
},
{
"name": "Microsoft.WindowsDesktop.App",
"version": "10.0.0"
}
],
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false,
"CSWINRT_USE_WINDOWS_UI_XAML_PROJECTIONS": false
}
}
}

View file

@ -0,0 +1,372 @@
{
"format": 1,
"restore": {
"C:\\Dev\\MailPrint\\MailPrintConfig\\MailPrintConfig.csproj": {}
},
"projects": {
"C:\\Dev\\MailPrint\\MailPrintConfig\\MailPrintConfig.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Dev\\MailPrint\\MailPrintConfig\\MailPrintConfig.csproj",
"projectName": "MailPrintConfig",
"projectPath": "C:\\Dev\\MailPrint\\MailPrintConfig\\MailPrintConfig.csproj",
"packagesPath": "C:\\Users\\janwu\\.nuget\\packages\\",
"outputPath": "C:\\Dev\\MailPrint\\MailPrintConfig\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\janwu\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net10.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net10.0-windows7.0": {
"targetAlias": "net10.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "10.0.200"
},
"frameworks": {
"net10.0-windows7.0": {
"targetAlias": "net10.0-windows",
"dependencies": {
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.3, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App.WindowsForms": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.202/PortableRuntimeIdentifierGraph.json",
"packagesToPrune": {
"Microsoft.CSharp": "(,4.7.32767]",
"Microsoft.VisualBasic": "(,10.4.32767]",
"Microsoft.Win32.Primitives": "(,4.3.32767]",
"Microsoft.Win32.Registry": "(,5.0.32767]",
"Microsoft.Win32.Registry.AccessControl": "(,10.0.32767]",
"Microsoft.Win32.SystemEvents": "(,10.0.32767]",
"runtime.any.System.Collections": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.any.System.Globalization": "(,4.3.32767]",
"runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.any.System.IO": "(,4.3.32767]",
"runtime.any.System.Reflection": "(,4.3.32767]",
"runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.any.System.Runtime": "(,4.3.32767]",
"runtime.any.System.Runtime.Handles": "(,4.3.32767]",
"runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.any.System.Text.Encoding": "(,4.3.32767]",
"runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.any.System.Threading.Tasks": "(,4.3.32767]",
"runtime.any.System.Threading.Timer": "(,4.3.32767]",
"runtime.aot.System.Collections": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.aot.System.Globalization": "(,4.3.32767]",
"runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.aot.System.IO": "(,4.3.32767]",
"runtime.aot.System.Reflection": "(,4.3.32767]",
"runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.aot.System.Runtime": "(,4.3.32767]",
"runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
"runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
"runtime.aot.System.Threading.Timer": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.unix.System.Console": "(,4.3.32767]",
"runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
"runtime.unix.System.Net.Primitives": "(,4.3.32767]",
"runtime.unix.System.Net.Sockets": "(,4.3.32767]",
"runtime.unix.System.Private.Uri": "(,4.3.32767]",
"runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.win.System.Console": "(,4.3.32767]",
"runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.win.System.IO.FileSystem": "(,4.3.32767]",
"runtime.win.System.Net.Primitives": "(,4.3.32767]",
"runtime.win.System.Net.Sockets": "(,4.3.32767]",
"runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7.System.Private.Uri": "(,4.3.32767]",
"runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
"System.AppContext": "(,4.3.32767]",
"System.Buffers": "(,5.0.32767]",
"System.CodeDom": "(,10.0.32767]",
"System.Collections": "(,4.3.32767]",
"System.Collections.Concurrent": "(,4.3.32767]",
"System.Collections.Immutable": "(,10.0.32767]",
"System.Collections.NonGeneric": "(,4.3.32767]",
"System.Collections.Specialized": "(,4.3.32767]",
"System.ComponentModel": "(,4.3.32767]",
"System.ComponentModel.Annotations": "(,4.3.32767]",
"System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
"System.ComponentModel.Primitives": "(,4.3.32767]",
"System.ComponentModel.TypeConverter": "(,4.3.32767]",
"System.Configuration.ConfigurationManager": "(,10.0.32767]",
"System.Console": "(,4.3.32767]",
"System.Data.Common": "(,4.3.32767]",
"System.Data.DataSetExtensions": "(,4.4.32767]",
"System.Diagnostics.Contracts": "(,4.3.32767]",
"System.Diagnostics.Debug": "(,4.3.32767]",
"System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
"System.Diagnostics.EventLog": "(,10.0.32767]",
"System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
"System.Diagnostics.PerformanceCounter": "(,10.0.32767]",
"System.Diagnostics.Process": "(,4.3.32767]",
"System.Diagnostics.StackTrace": "(,4.3.32767]",
"System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
"System.Diagnostics.Tools": "(,4.3.32767]",
"System.Diagnostics.TraceSource": "(,4.3.32767]",
"System.Diagnostics.Tracing": "(,4.3.32767]",
"System.DirectoryServices": "(,10.0.32767]",
"System.Drawing.Common": "(,10.0.32767]",
"System.Drawing.Primitives": "(,4.3.32767]",
"System.Dynamic.Runtime": "(,4.3.32767]",
"System.Formats.Asn1": "(,10.0.32767]",
"System.Formats.Nrbf": "(,10.0.32767]",
"System.Formats.Tar": "(,10.0.32767]",
"System.Globalization": "(,4.3.32767]",
"System.Globalization.Calendars": "(,4.3.32767]",
"System.Globalization.Extensions": "(,4.3.32767]",
"System.IO": "(,4.3.32767]",
"System.IO.Compression": "(,4.3.32767]",
"System.IO.Compression.ZipFile": "(,4.3.32767]",
"System.IO.FileSystem": "(,4.3.32767]",
"System.IO.FileSystem.AccessControl": "(,4.4.32767]",
"System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
"System.IO.FileSystem.Primitives": "(,4.3.32767]",
"System.IO.FileSystem.Watcher": "(,4.3.32767]",
"System.IO.IsolatedStorage": "(,4.3.32767]",
"System.IO.MemoryMappedFiles": "(,4.3.32767]",
"System.IO.Packaging": "(,10.0.32767]",
"System.IO.Pipelines": "(,10.0.32767]",
"System.IO.Pipes": "(,4.3.32767]",
"System.IO.Pipes.AccessControl": "(,5.0.32767]",
"System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
"System.Linq": "(,4.3.32767]",
"System.Linq.AsyncEnumerable": "(,10.0.32767]",
"System.Linq.Expressions": "(,4.3.32767]",
"System.Linq.Parallel": "(,4.3.32767]",
"System.Linq.Queryable": "(,4.3.32767]",
"System.Memory": "(,5.0.32767]",
"System.Net.Http": "(,4.3.32767]",
"System.Net.Http.Json": "(,10.0.32767]",
"System.Net.NameResolution": "(,4.3.32767]",
"System.Net.NetworkInformation": "(,4.3.32767]",
"System.Net.Ping": "(,4.3.32767]",
"System.Net.Primitives": "(,4.3.32767]",
"System.Net.Requests": "(,4.3.32767]",
"System.Net.Security": "(,4.3.32767]",
"System.Net.ServerSentEvents": "(,10.0.32767]",
"System.Net.Sockets": "(,4.3.32767]",
"System.Net.WebHeaderCollection": "(,4.3.32767]",
"System.Net.WebSockets": "(,4.3.32767]",
"System.Net.WebSockets.Client": "(,4.3.32767]",
"System.Numerics.Vectors": "(,5.0.32767]",
"System.ObjectModel": "(,4.3.32767]",
"System.Private.DataContractSerialization": "(,4.3.32767]",
"System.Private.Uri": "(,4.3.32767]",
"System.Reflection": "(,4.3.32767]",
"System.Reflection.DispatchProxy": "(,6.0.32767]",
"System.Reflection.Emit": "(,4.7.32767]",
"System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
"System.Reflection.Emit.Lightweight": "(,4.7.32767]",
"System.Reflection.Extensions": "(,4.3.32767]",
"System.Reflection.Metadata": "(,10.0.32767]",
"System.Reflection.Primitives": "(,4.3.32767]",
"System.Reflection.TypeExtensions": "(,4.3.32767]",
"System.Resources.Extensions": "(,10.0.32767]",
"System.Resources.Reader": "(,4.3.32767]",
"System.Resources.ResourceManager": "(,4.3.32767]",
"System.Resources.Writer": "(,4.3.32767]",
"System.Runtime": "(,4.3.32767]",
"System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
"System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
"System.Runtime.Extensions": "(,4.3.32767]",
"System.Runtime.Handles": "(,4.3.32767]",
"System.Runtime.InteropServices": "(,4.3.32767]",
"System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
"System.Runtime.Loader": "(,4.3.32767]",
"System.Runtime.Numerics": "(,4.3.32767]",
"System.Runtime.Serialization.Formatters": "(,4.3.32767]",
"System.Runtime.Serialization.Json": "(,4.3.32767]",
"System.Runtime.Serialization.Primitives": "(,4.3.32767]",
"System.Runtime.Serialization.Xml": "(,4.3.32767]",
"System.Security.AccessControl": "(,6.0.32767]",
"System.Security.Claims": "(,4.3.32767]",
"System.Security.Cryptography.Algorithms": "(,4.3.32767]",
"System.Security.Cryptography.Cng": "(,5.0.32767]",
"System.Security.Cryptography.Csp": "(,4.3.32767]",
"System.Security.Cryptography.Encoding": "(,4.3.32767]",
"System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
"System.Security.Cryptography.Pkcs": "(,10.0.32767]",
"System.Security.Cryptography.Primitives": "(,4.3.32767]",
"System.Security.Cryptography.ProtectedData": "(,10.0.32767]",
"System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
"System.Security.Cryptography.Xml": "(,10.0.32767]",
"System.Security.Permissions": "(,10.0.32767]",
"System.Security.Principal": "(,4.3.32767]",
"System.Security.Principal.Windows": "(,5.0.32767]",
"System.Security.SecureString": "(,4.3.32767]",
"System.Text.Encoding": "(,4.3.32767]",
"System.Text.Encoding.CodePages": "(,10.0.32767]",
"System.Text.Encoding.Extensions": "(,4.3.32767]",
"System.Text.Encodings.Web": "(,10.0.32767]",
"System.Text.Json": "(,10.0.32767]",
"System.Text.RegularExpressions": "(,4.3.32767]",
"System.Threading": "(,4.3.32767]",
"System.Threading.AccessControl": "(,10.0.32767]",
"System.Threading.Channels": "(,10.0.32767]",
"System.Threading.Overlapped": "(,4.3.32767]",
"System.Threading.Tasks": "(,4.3.32767]",
"System.Threading.Tasks.Dataflow": "(,10.0.32767]",
"System.Threading.Tasks.Extensions": "(,5.0.32767]",
"System.Threading.Tasks.Parallel": "(,4.3.32767]",
"System.Threading.Thread": "(,4.3.32767]",
"System.Threading.ThreadPool": "(,4.3.32767]",
"System.Threading.Timer": "(,4.3.32767]",
"System.ValueTuple": "(,4.5.32767]",
"System.Windows.Extensions": "(,10.0.32767]",
"System.Xml.ReaderWriter": "(,4.3.32767]",
"System.Xml.XDocument": "(,4.3.32767]",
"System.Xml.XmlDocument": "(,4.3.32767]",
"System.Xml.XmlSerializer": "(,4.3.32767]",
"System.Xml.XPath": "(,4.3.32767]",
"System.Xml.XPath.XDocument": "(,5.0.32767]"
}
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}
}

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\janwu\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\janwu\.nuget\packages\" />
</ItemGroup>
</Project>

View file

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View file

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]

View file

@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("MailPrintConfig")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("MailPrintConfig")]
[assembly: System.Reflection.AssemblyTitleAttribute("MailPrintConfig")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.

View file

@ -0,0 +1 @@
7e85a7a7663158e0d5a99b5b7cb2f9e44d70a375c96d05d06ffcceaef8544236

View file

@ -0,0 +1,24 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net10.0-windows
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v10.0
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = MailPrintConfig
build_property.ProjectDir = C:\Dev\MailPrint\MailPrintConfig\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 10.0
build_property.EnableCodeStyleSeverity =

View file

@ -0,0 +1,10 @@
// <auto-generated/>
global using System;
global using System.Collections.Generic;
global using System.Drawing;
global using System.IO;
global using System.Linq;
global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;
global using System.Windows.Forms;

View file

@ -0,0 +1 @@
7e060da22c8d04c73b07cffd71a2ec55526d76e35d6c9c5d4f8b74496e2de0af

View file

@ -0,0 +1,17 @@
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\MailPrintConfig.csproj.AssemblyReference.cache
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\MailPrintConfig.GeneratedMSBuildEditorConfig.editorconfig
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\MailPrintConfig.AssemblyInfoInputs.cache
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\MailPrintConfig.AssemblyInfo.cs
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\MailPrintConfig.csproj.CoreCompileInputs.cache
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\MailPrintConfig.exe
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\MailPrintConfig.deps.json
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\MailPrintConfig.runtimeconfig.json
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\MailPrintConfig.dll
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\MailPrintConfig.pdb
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\Newtonsoft.Json.dll
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\MailPrin.D4F965D9.Up2Date
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\MailPrintConfig.dll
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\refint\MailPrintConfig.dll
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\MailPrintConfig.pdb
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\MailPrintConfig.genruntimeconfig.cache
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\ref\MailPrintConfig.dll

View file

@ -0,0 +1 @@
93a5925d34a2d6a5bc4ccc8338ff8449deb2ffbff00db1dea2ec0216fc977f7a

View file

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]

View file

@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("MailPrintConfig")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Release")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("MailPrintConfig")]
[assembly: System.Reflection.AssemblyTitleAttribute("MailPrintConfig")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
[assembly: System.Runtime.Versioning.TargetPlatformAttribute("Windows7.0")]
[assembly: System.Runtime.Versioning.SupportedOSPlatformAttribute("Windows7.0")]
// Von der MSBuild WriteCodeFragment-Klasse generiert.

View file

@ -0,0 +1 @@
7e85a7a7663158e0d5a99b5b7cb2f9e44d70a375c96d05d06ffcceaef8544236

View file

@ -0,0 +1,24 @@
is_global = true
build_property.ApplicationManifest =
build_property.StartupObject =
build_property.ApplicationDefaultFont =
build_property.ApplicationHighDpiMode =
build_property.ApplicationUseCompatibleTextRendering =
build_property.ApplicationVisualStyles =
build_property.TargetFramework = net10.0-windows
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v10.0
build_property.TargetPlatformMinVersion = 7.0
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = MailPrintConfig
build_property.ProjectDir = C:\Dev\MailPrint\MailPrintConfig\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.CsWinRTUseWindowsUIXamlProjections = false
build_property.EffectiveAnalysisLevelStyle = 10.0
build_property.EnableCodeStyleSeverity =

View file

@ -0,0 +1,10 @@
// <auto-generated/>
global using System;
global using System.Collections.Generic;
global using System.Drawing;
global using System.IO;
global using System.Linq;
global using System.Net.Http;
global using System.Threading;
global using System.Threading.Tasks;
global using System.Windows.Forms;

View file

@ -0,0 +1 @@
d3206a3e7e11b0a431a6c9e3d368567b60f969f4c0da6f16db4925bc33458478

View file

@ -0,0 +1,17 @@
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\win-x64\MailPrintConfig.exe
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\win-x64\MailPrintConfig.deps.json
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\win-x64\MailPrintConfig.runtimeconfig.json
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\win-x64\MailPrintConfig.dll
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\win-x64\MailPrintConfig.pdb
C:\Dev\MailPrint\MailPrintConfig\bin\Release\net10.0-windows\win-x64\Newtonsoft.Json.dll
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\MailPrintConfig.csproj.AssemblyReference.cache
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\MailPrintConfig.GeneratedMSBuildEditorConfig.editorconfig
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\MailPrintConfig.AssemblyInfoInputs.cache
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\MailPrintConfig.AssemblyInfo.cs
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\MailPrintConfig.csproj.CoreCompileInputs.cache
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\MailPrin.D4F965D9.Up2Date
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\MailPrintConfig.dll
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\refint\MailPrintConfig.dll
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\MailPrintConfig.pdb
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\MailPrintConfig.genruntimeconfig.cache
C:\Dev\MailPrint\MailPrintConfig\obj\Release\net10.0-windows\win-x64\ref\MailPrintConfig.dll

View file

@ -0,0 +1 @@
28a326ca7e09e21ae95b328070fbc53d0a197fc2595edbcb4364aa339b3228fb

View file

@ -0,0 +1,6 @@
C:\Dev\MailPrint\publish\MailPrintConfig.exe
C:\Dev\MailPrint\publish\MailPrintConfig.dll
C:\Dev\MailPrint\publish\MailPrintConfig.deps.json
C:\Dev\MailPrint\publish\MailPrintConfig.runtimeconfig.json
C:\Dev\MailPrint\publish\MailPrintConfig.pdb
C:\Dev\MailPrint\publish\Newtonsoft.Json.dll

View file

@ -0,0 +1,439 @@
{
"version": 3,
"targets": {
"net10.0-windows7.0": {
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
}
},
"net10.0-windows7.0/win-x64": {
"Newtonsoft.Json/13.0.3": {
"type": "package",
"compile": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net6.0/Newtonsoft.Json.dll": {
"related": ".xml"
}
}
}
}
},
"libraries": {
"Newtonsoft.Json/13.0.3": {
"sha512": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ==",
"type": "package",
"path": "newtonsoft.json/13.0.3",
"files": [
".nupkg.metadata",
".signature.p7s",
"LICENSE.md",
"README.md",
"lib/net20/Newtonsoft.Json.dll",
"lib/net20/Newtonsoft.Json.xml",
"lib/net35/Newtonsoft.Json.dll",
"lib/net35/Newtonsoft.Json.xml",
"lib/net40/Newtonsoft.Json.dll",
"lib/net40/Newtonsoft.Json.xml",
"lib/net45/Newtonsoft.Json.dll",
"lib/net45/Newtonsoft.Json.xml",
"lib/net6.0/Newtonsoft.Json.dll",
"lib/net6.0/Newtonsoft.Json.xml",
"lib/netstandard1.0/Newtonsoft.Json.dll",
"lib/netstandard1.0/Newtonsoft.Json.xml",
"lib/netstandard1.3/Newtonsoft.Json.dll",
"lib/netstandard1.3/Newtonsoft.Json.xml",
"lib/netstandard2.0/Newtonsoft.Json.dll",
"lib/netstandard2.0/Newtonsoft.Json.xml",
"newtonsoft.json.13.0.3.nupkg.sha512",
"newtonsoft.json.nuspec",
"packageIcon.png"
]
}
},
"projectFileDependencyGroups": {
"net10.0-windows7.0": [
"Newtonsoft.Json >= 13.0.3"
]
},
"packageFolders": {
"C:\\Users\\janwu\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Dev\\MailPrint\\MailPrintConfig\\MailPrintConfig.csproj",
"projectName": "MailPrintConfig",
"projectPath": "C:\\Dev\\MailPrint\\MailPrintConfig\\MailPrintConfig.csproj",
"packagesPath": "C:\\Users\\janwu\\.nuget\\packages\\",
"outputPath": "C:\\Dev\\MailPrint\\MailPrintConfig\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\janwu\\AppData\\Roaming\\NuGet\\NuGet.Config"
],
"originalTargetFrameworks": [
"net10.0-windows"
],
"sources": {
"C:\\Program Files\\dotnet\\library-packs": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net10.0-windows7.0": {
"targetAlias": "net10.0-windows",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "10.0.200"
},
"frameworks": {
"net10.0-windows7.0": {
"targetAlias": "net10.0-windows",
"dependencies": {
"Newtonsoft.Json": {
"target": "Package",
"version": "[13.0.3, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
},
"Microsoft.WindowsDesktop.App.WindowsForms": {
"privateAssets": "none"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.202/PortableRuntimeIdentifierGraph.json",
"packagesToPrune": {
"Microsoft.CSharp": "(,4.7.32767]",
"Microsoft.VisualBasic": "(,10.4.32767]",
"Microsoft.Win32.Primitives": "(,4.3.32767]",
"Microsoft.Win32.Registry": "(,5.0.32767]",
"Microsoft.Win32.Registry.AccessControl": "(,10.0.32767]",
"Microsoft.Win32.SystemEvents": "(,10.0.32767]",
"runtime.any.System.Collections": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.any.System.Globalization": "(,4.3.32767]",
"runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.any.System.IO": "(,4.3.32767]",
"runtime.any.System.Reflection": "(,4.3.32767]",
"runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.any.System.Runtime": "(,4.3.32767]",
"runtime.any.System.Runtime.Handles": "(,4.3.32767]",
"runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.any.System.Text.Encoding": "(,4.3.32767]",
"runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.any.System.Threading.Tasks": "(,4.3.32767]",
"runtime.any.System.Threading.Timer": "(,4.3.32767]",
"runtime.aot.System.Collections": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.aot.System.Globalization": "(,4.3.32767]",
"runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.aot.System.IO": "(,4.3.32767]",
"runtime.aot.System.Reflection": "(,4.3.32767]",
"runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.aot.System.Runtime": "(,4.3.32767]",
"runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
"runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
"runtime.aot.System.Threading.Timer": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.unix.System.Console": "(,4.3.32767]",
"runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
"runtime.unix.System.Net.Primitives": "(,4.3.32767]",
"runtime.unix.System.Net.Sockets": "(,4.3.32767]",
"runtime.unix.System.Private.Uri": "(,4.3.32767]",
"runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.win.System.Console": "(,4.3.32767]",
"runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.win.System.IO.FileSystem": "(,4.3.32767]",
"runtime.win.System.Net.Primitives": "(,4.3.32767]",
"runtime.win.System.Net.Sockets": "(,4.3.32767]",
"runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7.System.Private.Uri": "(,4.3.32767]",
"runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
"System.AppContext": "(,4.3.32767]",
"System.Buffers": "(,5.0.32767]",
"System.CodeDom": "(,10.0.32767]",
"System.Collections": "(,4.3.32767]",
"System.Collections.Concurrent": "(,4.3.32767]",
"System.Collections.Immutable": "(,10.0.32767]",
"System.Collections.NonGeneric": "(,4.3.32767]",
"System.Collections.Specialized": "(,4.3.32767]",
"System.ComponentModel": "(,4.3.32767]",
"System.ComponentModel.Annotations": "(,4.3.32767]",
"System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
"System.ComponentModel.Primitives": "(,4.3.32767]",
"System.ComponentModel.TypeConverter": "(,4.3.32767]",
"System.Configuration.ConfigurationManager": "(,10.0.32767]",
"System.Console": "(,4.3.32767]",
"System.Data.Common": "(,4.3.32767]",
"System.Data.DataSetExtensions": "(,4.4.32767]",
"System.Diagnostics.Contracts": "(,4.3.32767]",
"System.Diagnostics.Debug": "(,4.3.32767]",
"System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
"System.Diagnostics.EventLog": "(,10.0.32767]",
"System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
"System.Diagnostics.PerformanceCounter": "(,10.0.32767]",
"System.Diagnostics.Process": "(,4.3.32767]",
"System.Diagnostics.StackTrace": "(,4.3.32767]",
"System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
"System.Diagnostics.Tools": "(,4.3.32767]",
"System.Diagnostics.TraceSource": "(,4.3.32767]",
"System.Diagnostics.Tracing": "(,4.3.32767]",
"System.DirectoryServices": "(,10.0.32767]",
"System.Drawing.Common": "(,10.0.32767]",
"System.Drawing.Primitives": "(,4.3.32767]",
"System.Dynamic.Runtime": "(,4.3.32767]",
"System.Formats.Asn1": "(,10.0.32767]",
"System.Formats.Nrbf": "(,10.0.32767]",
"System.Formats.Tar": "(,10.0.32767]",
"System.Globalization": "(,4.3.32767]",
"System.Globalization.Calendars": "(,4.3.32767]",
"System.Globalization.Extensions": "(,4.3.32767]",
"System.IO": "(,4.3.32767]",
"System.IO.Compression": "(,4.3.32767]",
"System.IO.Compression.ZipFile": "(,4.3.32767]",
"System.IO.FileSystem": "(,4.3.32767]",
"System.IO.FileSystem.AccessControl": "(,4.4.32767]",
"System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
"System.IO.FileSystem.Primitives": "(,4.3.32767]",
"System.IO.FileSystem.Watcher": "(,4.3.32767]",
"System.IO.IsolatedStorage": "(,4.3.32767]",
"System.IO.MemoryMappedFiles": "(,4.3.32767]",
"System.IO.Packaging": "(,10.0.32767]",
"System.IO.Pipelines": "(,10.0.32767]",
"System.IO.Pipes": "(,4.3.32767]",
"System.IO.Pipes.AccessControl": "(,5.0.32767]",
"System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
"System.Linq": "(,4.3.32767]",
"System.Linq.AsyncEnumerable": "(,10.0.32767]",
"System.Linq.Expressions": "(,4.3.32767]",
"System.Linq.Parallel": "(,4.3.32767]",
"System.Linq.Queryable": "(,4.3.32767]",
"System.Memory": "(,5.0.32767]",
"System.Net.Http": "(,4.3.32767]",
"System.Net.Http.Json": "(,10.0.32767]",
"System.Net.NameResolution": "(,4.3.32767]",
"System.Net.NetworkInformation": "(,4.3.32767]",
"System.Net.Ping": "(,4.3.32767]",
"System.Net.Primitives": "(,4.3.32767]",
"System.Net.Requests": "(,4.3.32767]",
"System.Net.Security": "(,4.3.32767]",
"System.Net.ServerSentEvents": "(,10.0.32767]",
"System.Net.Sockets": "(,4.3.32767]",
"System.Net.WebHeaderCollection": "(,4.3.32767]",
"System.Net.WebSockets": "(,4.3.32767]",
"System.Net.WebSockets.Client": "(,4.3.32767]",
"System.Numerics.Vectors": "(,5.0.32767]",
"System.ObjectModel": "(,4.3.32767]",
"System.Private.DataContractSerialization": "(,4.3.32767]",
"System.Private.Uri": "(,4.3.32767]",
"System.Reflection": "(,4.3.32767]",
"System.Reflection.DispatchProxy": "(,6.0.32767]",
"System.Reflection.Emit": "(,4.7.32767]",
"System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
"System.Reflection.Emit.Lightweight": "(,4.7.32767]",
"System.Reflection.Extensions": "(,4.3.32767]",
"System.Reflection.Metadata": "(,10.0.32767]",
"System.Reflection.Primitives": "(,4.3.32767]",
"System.Reflection.TypeExtensions": "(,4.3.32767]",
"System.Resources.Extensions": "(,10.0.32767]",
"System.Resources.Reader": "(,4.3.32767]",
"System.Resources.ResourceManager": "(,4.3.32767]",
"System.Resources.Writer": "(,4.3.32767]",
"System.Runtime": "(,4.3.32767]",
"System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
"System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
"System.Runtime.Extensions": "(,4.3.32767]",
"System.Runtime.Handles": "(,4.3.32767]",
"System.Runtime.InteropServices": "(,4.3.32767]",
"System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
"System.Runtime.Loader": "(,4.3.32767]",
"System.Runtime.Numerics": "(,4.3.32767]",
"System.Runtime.Serialization.Formatters": "(,4.3.32767]",
"System.Runtime.Serialization.Json": "(,4.3.32767]",
"System.Runtime.Serialization.Primitives": "(,4.3.32767]",
"System.Runtime.Serialization.Xml": "(,4.3.32767]",
"System.Security.AccessControl": "(,6.0.32767]",
"System.Security.Claims": "(,4.3.32767]",
"System.Security.Cryptography.Algorithms": "(,4.3.32767]",
"System.Security.Cryptography.Cng": "(,5.0.32767]",
"System.Security.Cryptography.Csp": "(,4.3.32767]",
"System.Security.Cryptography.Encoding": "(,4.3.32767]",
"System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
"System.Security.Cryptography.Pkcs": "(,10.0.32767]",
"System.Security.Cryptography.Primitives": "(,4.3.32767]",
"System.Security.Cryptography.ProtectedData": "(,10.0.32767]",
"System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
"System.Security.Cryptography.Xml": "(,10.0.32767]",
"System.Security.Permissions": "(,10.0.32767]",
"System.Security.Principal": "(,4.3.32767]",
"System.Security.Principal.Windows": "(,5.0.32767]",
"System.Security.SecureString": "(,4.3.32767]",
"System.Text.Encoding": "(,4.3.32767]",
"System.Text.Encoding.CodePages": "(,10.0.32767]",
"System.Text.Encoding.Extensions": "(,4.3.32767]",
"System.Text.Encodings.Web": "(,10.0.32767]",
"System.Text.Json": "(,10.0.32767]",
"System.Text.RegularExpressions": "(,4.3.32767]",
"System.Threading": "(,4.3.32767]",
"System.Threading.AccessControl": "(,10.0.32767]",
"System.Threading.Channels": "(,10.0.32767]",
"System.Threading.Overlapped": "(,4.3.32767]",
"System.Threading.Tasks": "(,4.3.32767]",
"System.Threading.Tasks.Dataflow": "(,10.0.32767]",
"System.Threading.Tasks.Extensions": "(,5.0.32767]",
"System.Threading.Tasks.Parallel": "(,4.3.32767]",
"System.Threading.Thread": "(,4.3.32767]",
"System.Threading.ThreadPool": "(,4.3.32767]",
"System.Threading.Timer": "(,4.3.32767]",
"System.ValueTuple": "(,4.5.32767]",
"System.Windows.Extensions": "(,10.0.32767]",
"System.Xml.ReaderWriter": "(,4.3.32767]",
"System.Xml.XDocument": "(,4.3.32767]",
"System.Xml.XmlDocument": "(,4.3.32767]",
"System.Xml.XmlSerializer": "(,4.3.32767]",
"System.Xml.XPath": "(,4.3.32767]",
"System.Xml.XPath.XDocument": "(,5.0.32767]"
}
}
},
"runtimes": {
"win-x64": {
"#import": []
}
}
}
}

View file

@ -0,0 +1,10 @@
{
"version": 2,
"dgSpecHash": "hFJ8BJ9fr3Q=",
"success": true,
"projectFilePath": "C:\\Dev\\MailPrint\\MailPrintConfig\\MailPrintConfig.csproj",
"expectedPackageFiles": [
"C:\\Users\\janwu\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512"
],
"logs": []
}