diff --git a/App/App.csproj b/App/App.csproj
index 2a15166..4d049fd 100644
--- a/App/App.csproj
+++ b/App/App.csproj
@@ -61,10 +61,13 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
+
+
+
+
+
+
diff --git a/App/App.xaml.cs b/App/App.xaml.cs
index 44f59b6..c6f22b4 100644
--- a/App/App.xaml.cs
+++ b/App/App.xaml.cs
@@ -16,6 +16,9 @@
using Microsoft.Win32;
using Microsoft.Windows.AppLifecycle;
using Windows.ApplicationModel.Activation;
+using Microsoft.Extensions.Logging;
+using Serilog;
+using System.Collections.Generic;
namespace Coder.Desktop.App;
@@ -24,22 +27,39 @@ public partial class App : Application
private readonly IServiceProvider _services;
private bool _handleWindowClosed = true;
+ private const string MutagenControllerConfigSection = "MutagenController";
#if !DEBUG
- private const string MutagenControllerConfigSection = "AppMutagenController";
+ private const string ConfigSubKey = @"SOFTWARE\Coder Desktop\App";
+ private const string logFilename = "app.log";
#else
- private const string MutagenControllerConfigSection = "DebugAppMutagenController";
+ private const string ConfigSubKey = @"SOFTWARE\Coder Desktop\DebugApp";
+ private const string logFilename = "debug-app.log";
#endif
+ private readonly ILogger _logger;
+
public App()
{
var builder = Host.CreateApplicationBuilder();
+ var configBuilder = builder.Configuration as IConfigurationBuilder;
- (builder.Configuration as IConfigurationBuilder).Add(
- new RegistryConfigurationSource(Registry.LocalMachine, @"SOFTWARE\Coder Desktop"));
+ // Add config in increasing order of precedence: first builtin defaults, then HKLM, finally HKCU
+ // so that the user's settings in the registry take precedence.
+ AddDefaultConfig(configBuilder);
+ configBuilder.Add(
+ new RegistryConfigurationSource(Registry.LocalMachine, ConfigSubKey));
+ configBuilder.Add(
+ new RegistryConfigurationSource(Registry.CurrentUser, ConfigSubKey));
var services = builder.Services;
+ // Logging
+ builder.Services.AddSerilog((_, loggerConfig) =>
+ {
+ loggerConfig.ReadFrom.Configuration(builder.Configuration);
+ });
+
services.AddSingleton();
services.AddSingleton();
@@ -69,12 +89,14 @@ public App()
services.AddTransient();
_services = services.BuildServiceProvider();
+ _logger = (ILogger)(_services.GetService(typeof(ILogger))!);
InitializeComponent();
}
public async Task ExitApplication()
{
+ _logger.LogDebug("exiting app");
_handleWindowClosed = false;
Exit();
var syncController = _services.GetRequiredService();
@@ -87,36 +109,39 @@ public async Task ExitApplication()
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
+ _logger.LogInformation("new instance launched");
// Start connecting to the manager in the background.
var rpcController = _services.GetRequiredService();
if (rpcController.GetState().RpcLifecycle == RpcLifecycle.Disconnected)
// Passing in a CT with no cancellation is desired here, because
// the named pipe open will block until the pipe comes up.
- // TODO: log
- _ = rpcController.Reconnect(CancellationToken.None).ContinueWith(t =>
+ _logger.LogDebug("reconnecting with VPN service");
+ _ = rpcController.Reconnect(CancellationToken.None).ContinueWith(t =>
+ {
+ if (t.Exception != null)
{
+ _logger.LogError(t.Exception, "failed to connect to VPN service");
#if DEBUG
- if (t.Exception != null)
- {
- Debug.WriteLine(t.Exception);
- Debugger.Break();
- }
+ Debug.WriteLine(t.Exception);
+ Debugger.Break();
#endif
- });
+ }
+ });
// Load the credentials in the background.
var credentialManagerCts = new CancellationTokenSource(TimeSpan.FromSeconds(15));
var credentialManager = _services.GetRequiredService();
_ = credentialManager.LoadCredentials(credentialManagerCts.Token).ContinueWith(t =>
{
- // TODO: log
-#if DEBUG
if (t.Exception != null)
{
+ _logger.LogError(t.Exception, "failed to load credentials");
+#if DEBUG
Debug.WriteLine(t.Exception);
Debugger.Break();
- }
#endif
+ }
+
credentialManagerCts.Dispose();
}, CancellationToken.None);
@@ -125,10 +150,14 @@ protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs ar
var syncSessionController = _services.GetRequiredService();
_ = syncSessionController.RefreshState(syncSessionCts.Token).ContinueWith(t =>
{
- // TODO: log
+ if (t.IsCanceled || t.Exception != null)
+ {
+ _logger.LogError(t.Exception, "failed to refresh sync state (canceled = {canceled})", t.IsCanceled);
#if DEBUG
- if (t.IsCanceled || t.Exception != null) Debugger.Break();
+ Debugger.Break();
#endif
+ }
+
syncSessionCts.Dispose();
}, CancellationToken.None);
@@ -148,17 +177,44 @@ public void OnActivated(object? sender, AppActivationArguments args)
{
case ExtendedActivationKind.Protocol:
var protoArgs = args.Data as IProtocolActivatedEventArgs;
+ if (protoArgs == null)
+ {
+ _logger.LogWarning("URI activation with null data");
+ return;
+ }
+
HandleURIActivation(protoArgs.Uri);
break;
default:
- // TODO: log
+ _logger.LogWarning("activation for {kind}, which is unhandled", args.Kind);
break;
}
}
public void HandleURIActivation(Uri uri)
{
- // TODO: handle
+ // don't log the query string as that's where we include some sensitive information like passwords
+ _logger.LogInformation("handling URI activation for {path}", uri.AbsolutePath);
+ }
+
+ private static void AddDefaultConfig(IConfigurationBuilder builder)
+ {
+ var logPath = Path.Combine(
+ Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
+ "CoderDesktop",
+ logFilename);
+ builder.AddInMemoryCollection(new Dictionary
+ {
+ [MutagenControllerConfigSection + ":MutagenExecutablePath"] = @"C:\mutagen.exe",
+ ["Serilog:Using:0"] = "Serilog.Sinks.File",
+ ["Serilog:MinimumLevel"] = "Information",
+ ["Serilog:Enrich:0"] = "FromLogContext",
+ ["Serilog:WriteTo:0:Name"] = "File",
+ ["Serilog:WriteTo:0:Args:path"] = logPath,
+ ["Serilog:WriteTo:0:Args:outputTemplate"] =
+ "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext} - {Message:lj}{NewLine}{Exception}",
+ ["Serilog:WriteTo:0:Args:rollingInterval"] = "Day",
+ });
}
}
diff --git a/App/packages.lock.json b/App/packages.lock.json
index 405ea61..5561686 100644
--- a/App/packages.lock.json
+++ b/App/packages.lock.json
@@ -28,51 +28,51 @@
},
"Microsoft.Extensions.DependencyInjection": {
"type": "Direct",
- "requested": "[9.0.1, )",
- "resolved": "9.0.1",
- "contentHash": "qZI42ASAe3hr2zMSA6UjM92pO1LeDq5DcwkgSowXXPY8I56M76pEKrnmsKKbxagAf39AJxkH2DY4sb72ixyOrg==",
+ "requested": "[9.0.4, )",
+ "resolved": "9.0.4",
+ "contentHash": "f2MTUaS2EQ3lX4325ytPAISZqgBfXmY0WvgD80ji6Z20AoDNiCESxsqo6mFRwHJD/jfVKRw9FsW6+86gNre3ug==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Hosting": {
"type": "Direct",
- "requested": "[9.0.1, )",
- "resolved": "9.0.1",
- "contentHash": "3wZNcVvC8RW44HDqqmIq+BqF5pgmTQdbNdR9NyYw33JSMnJuclwoJ2PEkrJ/KvD1U/hmqHVL3l5If+Hn3D1fWA==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Binder": "9.0.1",
- "Microsoft.Extensions.Configuration.CommandLine": "9.0.1",
- "Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.1",
- "Microsoft.Extensions.Configuration.FileExtensions": "9.0.1",
- "Microsoft.Extensions.Configuration.Json": "9.0.1",
- "Microsoft.Extensions.Configuration.UserSecrets": "9.0.1",
- "Microsoft.Extensions.DependencyInjection": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Diagnostics": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.1",
- "Microsoft.Extensions.Hosting.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging.Configuration": "9.0.1",
- "Microsoft.Extensions.Logging.Console": "9.0.1",
- "Microsoft.Extensions.Logging.Debug": "9.0.1",
- "Microsoft.Extensions.Logging.EventLog": "9.0.1",
- "Microsoft.Extensions.Logging.EventSource": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1"
+ "requested": "[9.0.4, )",
+ "resolved": "9.0.4",
+ "contentHash": "1rZwLE+tTUIyZRUzmlk/DQj+v+Eqox+rjb+X7Fi+cYTbQfIZPYwpf1pVybsV3oje8+Pe4GaNukpBVUlPYeQdeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.4",
+ "Microsoft.Extensions.Configuration.CommandLine": "9.0.4",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.4",
+ "Microsoft.Extensions.Configuration.FileExtensions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Json": "9.0.4",
+ "Microsoft.Extensions.Configuration.UserSecrets": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Diagnostics": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.4",
+ "Microsoft.Extensions.Hosting.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.4",
+ "Microsoft.Extensions.Logging.Console": "9.0.4",
+ "Microsoft.Extensions.Logging.Debug": "9.0.4",
+ "Microsoft.Extensions.Logging.EventLog": "9.0.4",
+ "Microsoft.Extensions.Logging.EventSource": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4"
}
},
"Microsoft.Extensions.Options": {
"type": "Direct",
- "requested": "[9.0.1, )",
- "resolved": "9.0.1",
- "contentHash": "nggoNKnWcsBIAaOWHA+53XZWrslC7aGeok+aR+epDPRy7HI7GwMnGZE8yEsL2Onw7kMOHVHwKcsDls1INkNUJQ==",
+ "requested": "[9.0.4, )",
+ "resolved": "9.0.4",
+ "contentHash": "fiFI2+58kicqVZyt/6obqoFwHiab7LC4FkQ3mmiBJ28Yy4fAvy2+v9MRnSvvlOO8chTOjKsdafFl/K9veCPo5g==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.WindowsAppSDK": {
@@ -85,6 +85,39 @@
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.756"
}
},
+ "Serilog.Extensions.Hosting": {
+ "type": "Direct",
+ "requested": "[9.0.0, )",
+ "resolved": "9.0.0",
+ "contentHash": "u2TRxuxbjvTAldQn7uaAwePkWxTHIqlgjelekBtilAGL5sYyF3+65NWctN4UrwwGLsDC7c3Vz3HnOlu+PcoxXg==",
+ "dependencies": {
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.0",
+ "Microsoft.Extensions.Hosting.Abstractions": "9.0.0",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.0",
+ "Serilog": "4.2.0",
+ "Serilog.Extensions.Logging": "9.0.0"
+ }
+ },
+ "Serilog.Settings.Configuration": {
+ "type": "Direct",
+ "requested": "[9.0.0, )",
+ "resolved": "9.0.0",
+ "contentHash": "4/Et4Cqwa+F88l5SeFeNZ4c4Z6dEAIKbu3MaQb2Zz9F/g27T5a3wvfMcmCOaAiACjfUb4A6wrlTVfyYUZk3RRQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "9.0.0",
+ "Microsoft.Extensions.DependencyModel": "9.0.0",
+ "Serilog": "4.2.0"
+ }
+ },
+ "Serilog.Sinks.File": {
+ "type": "Direct",
+ "requested": "[6.0.0, )",
+ "resolved": "6.0.0",
+ "contentHash": "lxjg89Y8gJMmFxVkbZ+qDgjl+T4yC5F7WSLTvA+5q0R04tfKVLRL/EHpYoJ/MEQd2EeCKDuylBIVnAYMotmh2A==",
+ "dependencies": {
+ "Serilog": "4.0.0"
+ }
+ },
"WinUIEx": {
"type": "Direct",
"requested": "[2.5.1, )",
@@ -139,240 +172,249 @@
},
"Microsoft.Extensions.Configuration": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "VuthqFS+ju6vT8W4wevdhEFiRi1trvQtkzWLonApfF5USVzzDcTBoY3F24WvN/tffLSrycArVfX1bThm/9xY2A==",
+ "resolved": "9.0.4",
+ "contentHash": "KIVBrMbItnCJDd1RF4KEaE8jZwDJcDUJW5zXpbwQ05HNYTK1GveHxHK0B3SjgDJuR48GRACXAO+BLhL8h34S7g==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "+4hfFIY1UjBCXFTTOd+ojlDPq6mep3h5Vq5SYE3Pjucr7dNXmq4S/6P/LoVnZFz2e/5gWp/om4svUFgznfULcA==",
+ "resolved": "9.0.4",
+ "contentHash": "0LN/DiIKvBrkqp7gkF3qhGIeZk6/B63PthAHjQsxymJfIBcz0kbf4/p/t4lMgggVxZ+flRi5xvTwlpPOoZk8fg==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.Binder": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "w7kAyu1Mm7eParRV6WvGNNwA8flPTub16fwH49h7b/yqJZFTgYxnOVCuiah3G2bgseJMEq4DLjjsyQRvsdzRgA==",
+ "resolved": "9.0.4",
+ "contentHash": "cdrjcl9RIcwt3ECbnpP0Gt1+pkjdW90mq5yFYy8D9qRj2NqFFcv3yDp141iEamsd9E218sGxK8WHaIOcrqgDJg==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.CommandLine": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "5WC1OsXfljC1KHEyL0yefpAyt1UZjrZ0/xyOqFowc5VntbE79JpCYOTSYFlxEuXm3Oq5xsgU2YXeZLTgAAX+DA==",
+ "resolved": "9.0.4",
+ "contentHash": "TbM2HElARG7z1gxwakdppmOkm1SykPqDcu3EF97daEwSb/+TXnRrFfJtF+5FWWxcsNhbRrmLfS2WszYcab7u1A==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "5HShUdF8KFAUSzoEu0DOFbX09FlcFtHxEalowyjM7Kji0EjdF0DLjHajb2IBvoqsExAYox+Z2GfbfGF7dH7lKQ==",
+ "resolved": "9.0.4",
+ "contentHash": "2IGiG3FtVnD83IA6HYGuNei8dOw455C09yEhGl8bjcY6aGZgoC6yhYvDnozw8wlTowfoG9bxVrdTsr2ACZOYHg==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.FileExtensions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "QBOI8YVAyKqeshYOyxSe6co22oag431vxMu5xQe1EjXMkYE4xK4J71xLCW3/bWKmr9Aoy1VqGUARSLFnotk4Bg==",
+ "resolved": "9.0.4",
+ "contentHash": "UY864WQ3AS2Fkc8fYLombWnjrXwYt+BEHHps0hY4sxlgqaVW06AxbpgRZjfYf8PyRbplJqruzZDB/nSLT+7RLQ==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.Json": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "z+g+lgPET1JRDjsOkFe51rkkNcnJgvOK5UIpeTfF1iAi0GkBJz5/yUuTa8a9V8HUh4gj4xFT5WGoMoXoSDKfGg==",
+ "resolved": "9.0.4",
+ "contentHash": "vVXI70CgT/dmXV3MM+n/BR2rLXEoAyoK0hQT+8MrbCMuJBiLRxnTtSrksNiASWCwOtxo/Tyy7CO8AGthbsYxnw==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.FileExtensions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "System.Text.Json": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.FileExtensions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "System.Text.Json": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.UserSecrets": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "esGPOgLZ1tZddEomexhrU+LJ5YIsuJdkh0tU7r4WVpNZ15dLuMPqPW4Xe4txf3T2PDUX2ILe3nYQEDjZjfSEJg==",
+ "resolved": "9.0.4",
+ "contentHash": "zuvyC72gJkJyodyGowCuz3EQ1QvzNXJtKusuRzmjoHr17aeB3X0aSiKFB++HMHnQIWWlPOBf9YHTQfEqzbgl1g==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Json": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Json": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.4"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "Tr74eP0oQ3AyC24ch17N8PuEkrPbD0JqIfENCYqmgKYNOmL8wQKzLJu3ObxTUDrjnn4rHoR1qKa37/eQyHmCDA=="
+ "resolved": "9.0.4",
+ "contentHash": "UI0TQPVkS78bFdjkTodmkH0Fe8lXv9LnhGFKgKrsgUJ5a5FVdFRcgjIkBVLbGgdRhxWirxH/8IXUtEyYJx6GQg=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "saxr2XzwgDU77LaQfYFXmddEDRUKHF4DaGMZkNB3qjdVSZlax3//dGJagJkKrGMIPNZs2jVFXITyCCR6UHJNdA==",
+ "dependencies": {
+ "System.Text.Encodings.Web": "9.0.0",
+ "System.Text.Json": "9.0.0"
+ }
},
"Microsoft.Extensions.Diagnostics": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "4ZmP6turxMFsNwK/MCko2fuIITaYYN/eXyyIRq1FjLDKnptdbn6xMb7u0zfSMzCGpzkx4RxH/g1jKN2IchG7uA==",
+ "resolved": "9.0.4",
+ "contentHash": "1bCSQrGv9+bpF5MGKF6THbnRFUZqQDrWPA39NDeVW9djeHBmow8kX4SX6/8KkeKI8gmUDG7jsG/bVuNAcY/ATQ==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.4"
}
},
"Microsoft.Extensions.Diagnostics.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "pfAPuVtHvG6dvZtAa0OQbXdDqq6epnr8z0/IIUjdmV0tMeI8Aj9KxDXvdDvqr+qNHTkmA7pZpChNxwNZt4GXVg==",
+ "resolved": "9.0.4",
+ "contentHash": "IAucBcHYtiCmMyFag+Vrp5m+cjGRlDttJk9Vx7Dqpq+Ama4BzVUOk0JARQakgFFr7ZTBSgLKlHmtY5MiItB7Cg==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "System.Diagnostics.DiagnosticSource": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "System.Diagnostics.DiagnosticSource": "9.0.4"
}
},
"Microsoft.Extensions.FileProviders.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "DguZYt1DWL05+8QKWL3b6bW7A2pC5kYFMY5iXM6W2M23jhvcNa8v6AU8PvVJBcysxHwr9/jax0agnwoBumsSwg==",
+ "resolved": "9.0.4",
+ "contentHash": "gQN2o/KnBfVk6Bd71E2YsvO5lsqrqHmaepDGk+FB/C4aiQY9B0XKKNKfl5/TqcNOs9OEithm4opiMHAErMFyEw==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.FileProviders.Physical": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "TKDMNRS66UTMEVT38/tU9hA63UTMvzI3DyNm5mx8+JCf3BaOtxgrvWLCI1y3J52PzT5yNl/T2KN5Z0KbApLZcg==",
+ "resolved": "9.0.4",
+ "contentHash": "qkQ9V7KFZdTWNThT7ke7E/Jad38s46atSs3QUYZB8f3thBTrcrousdY4Y/tyCtcH5YjsPSiByjuN+L8W/ThMQg==",
"dependencies": {
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileSystemGlobbing": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileSystemGlobbing": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.FileSystemGlobbing": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "Mxcp9NXuQMvAnudRZcgIb5SqlWrlullQzntBLTwuv0MPIJ5LqiGwbRqiyxgdk+vtCoUkplb0oXy5kAw1t469Ug=="
+ "resolved": "9.0.4",
+ "contentHash": "05Lh2ItSk4mzTdDWATW9nEcSybwprN8Tz42Fs5B+jwdXUpauktdAQUI1Am4sUQi2C63E5hvQp8gXvfwfg9mQGQ=="
},
"Microsoft.Extensions.Hosting.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "CwSMhLNe8HLkfbFzdz0CHWJhtWH3TtfZSicLBd/itFD+NqQtfGHmvqXHQbaFFl3mQB5PBb2gxwzWQyW2pIj7PA==",
+ "resolved": "9.0.4",
+ "contentHash": "bXkwRPMo4x19YKH6/V9XotU7KYQJlihXhcWO1RDclAY3yfY3XNg4QtSEBvng4kK/DnboE0O/nwSl+6Jiv9P+FA==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Logging": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "E/k5r7S44DOW+08xQPnNbO8DKAQHhkspDboTThNJ6Z3/QBb4LC6gStNWzVmy3IvW7sUD+iJKf4fj0xEkqE7vnQ==",
+ "resolved": "9.0.4",
+ "contentHash": "xW6QPYsqhbuWBO9/1oA43g/XPKbohJx+7G8FLQgQXIriYvY7s+gxr2wjQJfRoPO900dvvv2vVH7wZovG+M1m6w==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "w2gUqXN/jNIuvqYwX3lbXagsizVNXYyt6LlF57+tMve4JYCEgCMMAjRce6uKcDASJgpMbErRT1PfHy2OhbkqEA==",
+ "resolved": "9.0.4",
+ "contentHash": "0MXlimU4Dud6t+iNi5NEz3dO2w1HXdhoOLaYFuLPCjAsvlPQGwOT6V2KZRMLEhCAm/stSZt1AUv0XmDdkjvtbw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "System.Diagnostics.DiagnosticSource": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "System.Diagnostics.DiagnosticSource": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Configuration": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "MeZePlyu3/74Wk4FHYSzXijADJUhWa7gxtaphLxhS8zEPWdJuBCrPo0sezdCSZaKCL+cZLSLobrb7xt2zHOxZQ==",
+ "resolved": "9.0.4",
+ "contentHash": "/kF+rSnoo3/nIwGzWsR4RgBnoTOdZ3lzz2qFRyp/GgaNid4j6hOAQrs/O+QHXhlcAdZxjg37MvtIE+pAvIgi9g==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Binder": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Console": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "YUzguHYlWfp4upfYlpVe3dnY59P25wc+/YLJ9/NQcblT3EvAB1CObQulClll7NtnFbbx4Js0a0UfyS8SbRsWXQ==",
+ "resolved": "9.0.4",
+ "contentHash": "cI0lQe0js65INCTCtAgnlVJWKgzgoRHVAW1B1zwCbmcliO4IZoTf92f1SYbLeLk7FzMJ/GlCvjLvJegJ6kltmQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging.Configuration": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "System.Text.Json": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "System.Text.Json": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Debug": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "pzdyibIV8k4sym0Sszcp2MJCuXrpOGs9qfOvY+hCRu8k4HbdVoeKOLnacxHK6vEPITX5o5FjjsZW2zScLXTjYA==",
+ "resolved": "9.0.4",
+ "contentHash": "D1jy+jy+huUUxnkZ0H480RZK8vqKn8NsQxYpMpPL/ALPPh1WATVLcr/uXI3RUBB45wMW5265O+hk9x3jnnXFuA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Logging.EventLog": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "+a4RlbwFWjsMujNNhf1Jy9Nm5CpMT+nxXxfgrkRSloPo0OAWhPSPsrFo6VWpvgIPPS41qmfAVWr3DqAmOoVZgQ==",
+ "resolved": "9.0.4",
+ "contentHash": "bApxdklf7QTsONOLR5ow6SdDFXR5ncHvumSEg2+QnCvxvkzc2z5kNn7yQCyupRLRN4jKbnlTkVX8x9qLlwL6Qg==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "System.Diagnostics.EventLog": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "System.Diagnostics.EventLog": "9.0.4"
}
},
"Microsoft.Extensions.Logging.EventSource": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "d47ZRZUOg1dGOX+yisWScQ7w4+92OlR9beS2UXaiadUCA3RFoZzobzVgrzBX7Oo/qefx9LxdRcaeFpWKb3BNBw==",
+ "resolved": "9.0.4",
+ "contentHash": "R600zTxVJNw2IeAEOvdOJGNA1lHr1m3vo460hSF5G1DjwP0FNpyeH4lpLDMuf34diKwB1LTt5hBw1iF1/iuwsQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1",
- "System.Text.Json": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4",
+ "System.Text.Json": "9.0.4"
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "8RRKWtuU4fR+8MQLR/8CqZwZ9yc2xCpllw/WPRY7kskIqEq0hMcEI4AfUJO72yGiK2QJkrsDcUvgB5Yc+3+lyg==",
+ "resolved": "9.0.4",
+ "contentHash": "aridVhAT3Ep+vsirR1pzjaOw0Jwiob6dc73VFQn2XmDfBA2X98M8YKO1GarvsXRX7gX1Aj+hj2ijMzrMHDOm0A==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Binder": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "bHtTesA4lrSGD1ZUaMIx6frU3wyy0vYtTa/hM6gGQu5QNrydObv8T5COiGUWsisflAfmsaFOe9Xvw5NSO99z0g=="
+ "resolved": "9.0.4",
+ "contentHash": "SPFyMjyku1nqTFFJ928JAMd0QnRe4xjE7KeKnZMWXf3xk+6e0WiOZAluYtLdbJUXtsl2cCRSi8cBquJ408k8RA=="
},
"Microsoft.Web.WebView2": {
"type": "Transitive",
@@ -397,6 +439,20 @@
"Microsoft.Extensions.Primitives": "5.0.1"
}
},
+ "Serilog": {
+ "type": "Transitive",
+ "resolved": "4.2.0",
+ "contentHash": "gmoWVOvKgbME8TYR+gwMf7osROiWAURterc6Rt2dQyX7wtjZYpqFiA/pY6ztjGQKKV62GGCyOcmtP1UKMHgSmA=="
+ },
+ "Serilog.Extensions.Logging": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "NwSSYqPJeKNzl5AuXVHpGbr6PkZJFlNa14CdIebVjK3k/76kYj/mz5kiTRNVSsSaxM8kAIa1kpy/qyT9E4npRQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Logging": "9.0.0",
+ "Serilog": "4.2.0"
+ }
+ },
"System.Collections.Immutable": {
"type": "Transitive",
"resolved": "9.0.0",
@@ -404,13 +460,13 @@
},
"System.Diagnostics.DiagnosticSource": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "yOcDWx4P/s1I83+7gQlgQLmhny2eNcU0cfo1NBWi+en4EAI38Jau+/neT85gUW6w1s7+FUJc2qNOmmwGLIREqA=="
+ "resolved": "9.0.4",
+ "contentHash": "Be0emq8bRmcK4eeJIFUt9+vYPf7kzuQrFs8Ef1CdGvXpq/uSve22PTSkRF09bF/J7wmYJ2DHf2v7GaT3vMXnwQ=="
},
"System.Diagnostics.EventLog": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "iVnDpgYJsRaRFnk77kcLA3+913WfWDtnAKrQl9tQ5ahqKANTaJKmQdsuPWWiAPWE9pk1Kj4Pg9JGXWfFYYyakQ=="
+ "resolved": "9.0.4",
+ "contentHash": "getRQEXD8idlpb1KW56XuxImMy0FKp2WJPDf3Qr0kI/QKxxJSftqfDFVo0DZ3HCJRLU73qHSruv5q2l5O47jQQ=="
},
"System.Drawing.Common": {
"type": "Transitive",
@@ -422,8 +478,8 @@
},
"System.IO.Pipelines": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "uXf5o8eV/gtzDQY4lGROLFMWQvcViKcF8o4Q6KpIOjloAQXrnscQSu6gTxYJMHuNJnh7szIF9AzkaEq+zDLoEg=="
+ "resolved": "9.0.4",
+ "contentHash": "luF2Xba+lTe2GOoNQdZLe8q7K6s7nSpWZl9jIwWNMszN4/Yv0lmxk9HISgMmwdyZ83i3UhAGXaSY9o6IJBUuuA=="
},
"System.Reflection.Metadata": {
"type": "Transitive",
@@ -435,16 +491,16 @@
},
"System.Text.Encodings.Web": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "XkspqduP2t1e1x2vBUAD/xZ5ZDvmywuUwsmB93MvyQLospJfqtX0GsR/kU0vUL2h4kmvf777z3txV2W4NrQ9Qg=="
+ "resolved": "9.0.4",
+ "contentHash": "V+5cCPpk1S2ngekUs9nDrQLHGiWFZMg8BthADQr+Fwi59a8DdHFu26S2oi9Bfgv+d67bqmkPqctJXMEXiimXUg=="
},
"System.Text.Json": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "eqWHDZqYPv1PvuvoIIx5pF74plL3iEOZOl/0kQP+Y0TEbtgNnM2W6k8h8EPYs+LTJZsXuWa92n5W5sHTWvE3VA==",
+ "resolved": "9.0.4",
+ "contentHash": "pYtmpcO6R3Ef1XilZEHgXP2xBPVORbYEzRP7dl0IAAbN8Dm+kfwio8aCKle97rAWXOExr292MuxWYurIuwN62g==",
"dependencies": {
- "System.IO.Pipelines": "9.0.1",
- "System.Text.Encodings.Web": "9.0.1"
+ "System.IO.Pipelines": "9.0.4",
+ "System.Text.Encodings.Web": "9.0.4"
}
},
"Coder.Desktop.CoderSdk": {
@@ -496,13 +552,13 @@
},
"System.Diagnostics.EventLog": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "iVnDpgYJsRaRFnk77kcLA3+913WfWDtnAKrQl9tQ5ahqKANTaJKmQdsuPWWiAPWE9pk1Kj4Pg9JGXWfFYYyakQ=="
+ "resolved": "9.0.4",
+ "contentHash": "getRQEXD8idlpb1KW56XuxImMy0FKp2WJPDf3Qr0kI/QKxxJSftqfDFVo0DZ3HCJRLU73qHSruv5q2l5O47jQQ=="
},
"System.Text.Encodings.Web": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "XkspqduP2t1e1x2vBUAD/xZ5ZDvmywuUwsmB93MvyQLospJfqtX0GsR/kU0vUL2h4kmvf777z3txV2W4NrQ9Qg=="
+ "resolved": "9.0.4",
+ "contentHash": "V+5cCPpk1S2ngekUs9nDrQLHGiWFZMg8BthADQr+Fwi59a8DdHFu26S2oi9Bfgv+d67bqmkPqctJXMEXiimXUg=="
}
},
"net8.0-windows10.0.19041/win-x64": {
@@ -528,13 +584,13 @@
},
"System.Diagnostics.EventLog": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "iVnDpgYJsRaRFnk77kcLA3+913WfWDtnAKrQl9tQ5ahqKANTaJKmQdsuPWWiAPWE9pk1Kj4Pg9JGXWfFYYyakQ=="
+ "resolved": "9.0.4",
+ "contentHash": "getRQEXD8idlpb1KW56XuxImMy0FKp2WJPDf3Qr0kI/QKxxJSftqfDFVo0DZ3HCJRLU73qHSruv5q2l5O47jQQ=="
},
"System.Text.Encodings.Web": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "XkspqduP2t1e1x2vBUAD/xZ5ZDvmywuUwsmB93MvyQLospJfqtX0GsR/kU0vUL2h4kmvf777z3txV2W4NrQ9Qg=="
+ "resolved": "9.0.4",
+ "contentHash": "V+5cCPpk1S2ngekUs9nDrQLHGiWFZMg8BthADQr+Fwi59a8DdHFu26S2oi9Bfgv+d67bqmkPqctJXMEXiimXUg=="
}
},
"net8.0-windows10.0.19041/win-x86": {
@@ -560,13 +616,13 @@
},
"System.Diagnostics.EventLog": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "iVnDpgYJsRaRFnk77kcLA3+913WfWDtnAKrQl9tQ5ahqKANTaJKmQdsuPWWiAPWE9pk1Kj4Pg9JGXWfFYYyakQ=="
+ "resolved": "9.0.4",
+ "contentHash": "getRQEXD8idlpb1KW56XuxImMy0FKp2WJPDf3Qr0kI/QKxxJSftqfDFVo0DZ3HCJRLU73qHSruv5q2l5O47jQQ=="
},
"System.Text.Encodings.Web": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "XkspqduP2t1e1x2vBUAD/xZ5ZDvmywuUwsmB93MvyQLospJfqtX0GsR/kU0vUL2h4kmvf777z3txV2W4NrQ9Qg=="
+ "resolved": "9.0.4",
+ "contentHash": "V+5cCPpk1S2ngekUs9nDrQLHGiWFZMg8BthADQr+Fwi59a8DdHFu26S2oi9Bfgv+d67bqmkPqctJXMEXiimXUg=="
}
}
}
diff --git a/Installer/Installer.csproj b/Installer/Installer.csproj
index b850f6a..99261b9 100644
--- a/Installer/Installer.csproj
+++ b/Installer/Installer.csproj
@@ -17,6 +17,7 @@
+
diff --git a/Installer/Program.cs b/Installer/Program.cs
index 78965e4..1894a2d 100644
--- a/Installer/Program.cs
+++ b/Installer/Program.cs
@@ -2,7 +2,9 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Text;
using CommandLine;
+using Microsoft.Extensions.Configuration;
using WixSharp;
using WixSharp.Bootstrapper;
using WixSharp.CommonTasks;
@@ -128,7 +130,8 @@ public class BootstrapperOptions : SharedOptions
if (!SystemFile.Exists(MsiPath))
throw new ArgumentException($"MSI package not found at '{MsiPath}'", nameof(MsiPath));
if (!SystemFile.Exists(WindowsAppSdkPath))
- throw new ArgumentException($"Windows App Sdk package not found at '{WindowsAppSdkPath}'", nameof(WindowsAppSdkPath));
+ throw new ArgumentException($"Windows App Sdk package not found at '{WindowsAppSdkPath}'",
+ nameof(WindowsAppSdkPath));
}
}
@@ -138,6 +141,8 @@ public class Program
private const string Manufacturer = "Coder Technologies Inc.";
private const string HelpUrl = "https://coder.com/docs";
private const string RegistryKey = @"SOFTWARE\Coder Desktop";
+ private const string AppConfigRegistryKey = RegistryKey + @"\App";
+ private const string VpnServiceConfigRegistryKey = RegistryKey + @"\VpnService";
private const string DotNetCheckName = "DOTNET_RUNTIME_CHECK";
private const RollForward DotNetCheckRollForward = RollForward.minor;
@@ -258,18 +263,21 @@ private static int BuildMsiPackage(MsiOptions opts)
project.AddRegValues(
// Add registry values that are consumed by the manager. Note that these
- // should not be changed. See Vpn.Service/Program.cs and
+ // should not be changed. See Vpn.Service/Program.cs (AddDefaultConfig) and
// Vpn.Service/ManagerConfig.cs for more details.
- new RegValue(RegistryHive, RegistryKey, "Manager:ServiceRpcPipeName", "Coder.Desktop.Vpn"),
- new RegValue(RegistryHive, RegistryKey, "Manager:TunnelBinaryPath",
+ new RegValue(RegistryHive, VpnServiceConfigRegistryKey, "Manager:ServiceRpcPipeName", "Coder.Desktop.Vpn"),
+ new RegValue(RegistryHive, VpnServiceConfigRegistryKey, "Manager:TunnelBinaryPath",
$"[INSTALLFOLDER]{opts.VpnDir}\\coder-vpn.exe"),
- new RegValue(RegistryHive, RegistryKey, "Manager:LogFileLocation",
+ new RegValue(RegistryHive, VpnServiceConfigRegistryKey, "Manager:TunnelBinarySignatureSigner",
+ "Coder Technologies Inc."),
+ new RegValue(RegistryHive, VpnServiceConfigRegistryKey, "Manager:TunnelBinaryAllowVersionMismatch",
+ "false"),
+ new RegValue(RegistryHive, VpnServiceConfigRegistryKey, "Serilog:WriteTo:0:Args:path",
@"[INSTALLFOLDER]coder-desktop-service.log"),
- new RegValue(RegistryHive, RegistryKey, "Manager:TunnelBinarySignatureSigner", "Coder Technologies Inc."),
- new RegValue(RegistryHive, RegistryKey, "Manager:TunnelBinaryAllowVersionMismatch", "false"),
+
// Add registry values that are consumed by the App MutagenController. See App/Services/MutagenController.cs
- new RegValue(RegistryHive, RegistryKey, "AppMutagenController:MutagenExecutablePath",
- @"[INSTALLFOLDER]mutagen.exe")
+ new RegValue(RegistryHive, AppConfigRegistryKey, "MutagenController:MutagenExecutablePath",
+ @"[INSTALLFOLDER]vpn\mutagen.exe")
);
// Note: most of this control panel info will not be visible as this
diff --git a/Tests.Vpn.Service/packages.lock.json b/Tests.Vpn.Service/packages.lock.json
index 7ba4c03..08a9b56 100644
--- a/Tests.Vpn.Service/packages.lock.json
+++ b/Tests.Vpn.Service/packages.lock.json
@@ -48,305 +48,314 @@
},
"Microsoft.Extensions.Configuration": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "VuthqFS+ju6vT8W4wevdhEFiRi1trvQtkzWLonApfF5USVzzDcTBoY3F24WvN/tffLSrycArVfX1bThm/9xY2A==",
+ "resolved": "9.0.4",
+ "contentHash": "KIVBrMbItnCJDd1RF4KEaE8jZwDJcDUJW5zXpbwQ05HNYTK1GveHxHK0B3SjgDJuR48GRACXAO+BLhL8h34S7g==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "+4hfFIY1UjBCXFTTOd+ojlDPq6mep3h5Vq5SYE3Pjucr7dNXmq4S/6P/LoVnZFz2e/5gWp/om4svUFgznfULcA==",
+ "resolved": "9.0.4",
+ "contentHash": "0LN/DiIKvBrkqp7gkF3qhGIeZk6/B63PthAHjQsxymJfIBcz0kbf4/p/t4lMgggVxZ+flRi5xvTwlpPOoZk8fg==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.Binder": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "w7kAyu1Mm7eParRV6WvGNNwA8flPTub16fwH49h7b/yqJZFTgYxnOVCuiah3G2bgseJMEq4DLjjsyQRvsdzRgA==",
+ "resolved": "9.0.4",
+ "contentHash": "cdrjcl9RIcwt3ECbnpP0Gt1+pkjdW90mq5yFYy8D9qRj2NqFFcv3yDp141iEamsd9E218sGxK8WHaIOcrqgDJg==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.CommandLine": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "5WC1OsXfljC1KHEyL0yefpAyt1UZjrZ0/xyOqFowc5VntbE79JpCYOTSYFlxEuXm3Oq5xsgU2YXeZLTgAAX+DA==",
+ "resolved": "9.0.4",
+ "contentHash": "TbM2HElARG7z1gxwakdppmOkm1SykPqDcu3EF97daEwSb/+TXnRrFfJtF+5FWWxcsNhbRrmLfS2WszYcab7u1A==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "5HShUdF8KFAUSzoEu0DOFbX09FlcFtHxEalowyjM7Kji0EjdF0DLjHajb2IBvoqsExAYox+Z2GfbfGF7dH7lKQ==",
+ "resolved": "9.0.4",
+ "contentHash": "2IGiG3FtVnD83IA6HYGuNei8dOw455C09yEhGl8bjcY6aGZgoC6yhYvDnozw8wlTowfoG9bxVrdTsr2ACZOYHg==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.FileExtensions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "QBOI8YVAyKqeshYOyxSe6co22oag431vxMu5xQe1EjXMkYE4xK4J71xLCW3/bWKmr9Aoy1VqGUARSLFnotk4Bg==",
+ "resolved": "9.0.4",
+ "contentHash": "UY864WQ3AS2Fkc8fYLombWnjrXwYt+BEHHps0hY4sxlgqaVW06AxbpgRZjfYf8PyRbplJqruzZDB/nSLT+7RLQ==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.Json": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "z+g+lgPET1JRDjsOkFe51rkkNcnJgvOK5UIpeTfF1iAi0GkBJz5/yUuTa8a9V8HUh4gj4xFT5WGoMoXoSDKfGg==",
+ "resolved": "9.0.4",
+ "contentHash": "vVXI70CgT/dmXV3MM+n/BR2rLXEoAyoK0hQT+8MrbCMuJBiLRxnTtSrksNiASWCwOtxo/Tyy7CO8AGthbsYxnw==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.FileExtensions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "System.Text.Json": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.FileExtensions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "System.Text.Json": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.UserSecrets": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "esGPOgLZ1tZddEomexhrU+LJ5YIsuJdkh0tU7r4WVpNZ15dLuMPqPW4Xe4txf3T2PDUX2ILe3nYQEDjZjfSEJg==",
+ "resolved": "9.0.4",
+ "contentHash": "zuvyC72gJkJyodyGowCuz3EQ1QvzNXJtKusuRzmjoHr17aeB3X0aSiKFB++HMHnQIWWlPOBf9YHTQfEqzbgl1g==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Json": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Json": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.4"
}
},
"Microsoft.Extensions.DependencyInjection": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "qZI42ASAe3hr2zMSA6UjM92pO1LeDq5DcwkgSowXXPY8I56M76pEKrnmsKKbxagAf39AJxkH2DY4sb72ixyOrg==",
+ "resolved": "9.0.4",
+ "contentHash": "f2MTUaS2EQ3lX4325ytPAISZqgBfXmY0WvgD80ji6Z20AoDNiCESxsqo6mFRwHJD/jfVKRw9FsW6+86gNre3ug==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "Tr74eP0oQ3AyC24ch17N8PuEkrPbD0JqIfENCYqmgKYNOmL8wQKzLJu3ObxTUDrjnn4rHoR1qKa37/eQyHmCDA=="
+ "resolved": "9.0.4",
+ "contentHash": "UI0TQPVkS78bFdjkTodmkH0Fe8lXv9LnhGFKgKrsgUJ5a5FVdFRcgjIkBVLbGgdRhxWirxH/8IXUtEyYJx6GQg=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "saxr2XzwgDU77LaQfYFXmddEDRUKHF4DaGMZkNB3qjdVSZlax3//dGJagJkKrGMIPNZs2jVFXITyCCR6UHJNdA==",
+ "dependencies": {
+ "System.Text.Encodings.Web": "9.0.0",
+ "System.Text.Json": "9.0.0"
+ }
},
"Microsoft.Extensions.Diagnostics": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "4ZmP6turxMFsNwK/MCko2fuIITaYYN/eXyyIRq1FjLDKnptdbn6xMb7u0zfSMzCGpzkx4RxH/g1jKN2IchG7uA==",
+ "resolved": "9.0.4",
+ "contentHash": "1bCSQrGv9+bpF5MGKF6THbnRFUZqQDrWPA39NDeVW9djeHBmow8kX4SX6/8KkeKI8gmUDG7jsG/bVuNAcY/ATQ==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.4"
}
},
"Microsoft.Extensions.Diagnostics.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "pfAPuVtHvG6dvZtAa0OQbXdDqq6epnr8z0/IIUjdmV0tMeI8Aj9KxDXvdDvqr+qNHTkmA7pZpChNxwNZt4GXVg==",
+ "resolved": "9.0.4",
+ "contentHash": "IAucBcHYtiCmMyFag+Vrp5m+cjGRlDttJk9Vx7Dqpq+Ama4BzVUOk0JARQakgFFr7ZTBSgLKlHmtY5MiItB7Cg==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "System.Diagnostics.DiagnosticSource": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "System.Diagnostics.DiagnosticSource": "9.0.4"
}
},
"Microsoft.Extensions.FileProviders.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "DguZYt1DWL05+8QKWL3b6bW7A2pC5kYFMY5iXM6W2M23jhvcNa8v6AU8PvVJBcysxHwr9/jax0agnwoBumsSwg==",
+ "resolved": "9.0.4",
+ "contentHash": "gQN2o/KnBfVk6Bd71E2YsvO5lsqrqHmaepDGk+FB/C4aiQY9B0XKKNKfl5/TqcNOs9OEithm4opiMHAErMFyEw==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.FileProviders.Physical": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "TKDMNRS66UTMEVT38/tU9hA63UTMvzI3DyNm5mx8+JCf3BaOtxgrvWLCI1y3J52PzT5yNl/T2KN5Z0KbApLZcg==",
+ "resolved": "9.0.4",
+ "contentHash": "qkQ9V7KFZdTWNThT7ke7E/Jad38s46atSs3QUYZB8f3thBTrcrousdY4Y/tyCtcH5YjsPSiByjuN+L8W/ThMQg==",
"dependencies": {
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileSystemGlobbing": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileSystemGlobbing": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.FileSystemGlobbing": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "Mxcp9NXuQMvAnudRZcgIb5SqlWrlullQzntBLTwuv0MPIJ5LqiGwbRqiyxgdk+vtCoUkplb0oXy5kAw1t469Ug=="
+ "resolved": "9.0.4",
+ "contentHash": "05Lh2ItSk4mzTdDWATW9nEcSybwprN8Tz42Fs5B+jwdXUpauktdAQUI1Am4sUQi2C63E5hvQp8gXvfwfg9mQGQ=="
},
"Microsoft.Extensions.Hosting": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "3wZNcVvC8RW44HDqqmIq+BqF5pgmTQdbNdR9NyYw33JSMnJuclwoJ2PEkrJ/KvD1U/hmqHVL3l5If+Hn3D1fWA==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Binder": "9.0.1",
- "Microsoft.Extensions.Configuration.CommandLine": "9.0.1",
- "Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.1",
- "Microsoft.Extensions.Configuration.FileExtensions": "9.0.1",
- "Microsoft.Extensions.Configuration.Json": "9.0.1",
- "Microsoft.Extensions.Configuration.UserSecrets": "9.0.1",
- "Microsoft.Extensions.DependencyInjection": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Diagnostics": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.1",
- "Microsoft.Extensions.Hosting.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging.Configuration": "9.0.1",
- "Microsoft.Extensions.Logging.Console": "9.0.1",
- "Microsoft.Extensions.Logging.Debug": "9.0.1",
- "Microsoft.Extensions.Logging.EventLog": "9.0.1",
- "Microsoft.Extensions.Logging.EventSource": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1"
+ "resolved": "9.0.4",
+ "contentHash": "1rZwLE+tTUIyZRUzmlk/DQj+v+Eqox+rjb+X7Fi+cYTbQfIZPYwpf1pVybsV3oje8+Pe4GaNukpBVUlPYeQdeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.4",
+ "Microsoft.Extensions.Configuration.CommandLine": "9.0.4",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.4",
+ "Microsoft.Extensions.Configuration.FileExtensions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Json": "9.0.4",
+ "Microsoft.Extensions.Configuration.UserSecrets": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Diagnostics": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.4",
+ "Microsoft.Extensions.Hosting.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.4",
+ "Microsoft.Extensions.Logging.Console": "9.0.4",
+ "Microsoft.Extensions.Logging.Debug": "9.0.4",
+ "Microsoft.Extensions.Logging.EventLog": "9.0.4",
+ "Microsoft.Extensions.Logging.EventSource": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4"
}
},
"Microsoft.Extensions.Hosting.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "CwSMhLNe8HLkfbFzdz0CHWJhtWH3TtfZSicLBd/itFD+NqQtfGHmvqXHQbaFFl3mQB5PBb2gxwzWQyW2pIj7PA==",
+ "resolved": "9.0.4",
+ "contentHash": "bXkwRPMo4x19YKH6/V9XotU7KYQJlihXhcWO1RDclAY3yfY3XNg4QtSEBvng4kK/DnboE0O/nwSl+6Jiv9P+FA==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Hosting.WindowsServices": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "FLapgOXQzPjUsbMqjjagCFCiGjroRmrmHQVK3/PEovRIvDU6nLk7KKs4PalzEHaIfqG+PySlY/BeLTyZtjcshg==",
+ "resolved": "9.0.4",
+ "contentHash": "QFeUS0NG4Kwq91Mf1WzVZSbBtw+nKxyOQTi4xTRUEQ2gC7HWiyCUiX0arMJxt9lWwbjXxQY9TQjDptm+ct7BkQ==",
"dependencies": {
- "Microsoft.Extensions.Hosting": "9.0.1",
- "Microsoft.Extensions.Logging.EventLog": "9.0.1",
- "System.ServiceProcess.ServiceController": "9.0.1"
+ "Microsoft.Extensions.Hosting": "9.0.4",
+ "Microsoft.Extensions.Logging.EventLog": "9.0.4",
+ "System.ServiceProcess.ServiceController": "9.0.4"
}
},
"Microsoft.Extensions.Logging": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "E/k5r7S44DOW+08xQPnNbO8DKAQHhkspDboTThNJ6Z3/QBb4LC6gStNWzVmy3IvW7sUD+iJKf4fj0xEkqE7vnQ==",
+ "resolved": "9.0.4",
+ "contentHash": "xW6QPYsqhbuWBO9/1oA43g/XPKbohJx+7G8FLQgQXIriYvY7s+gxr2wjQJfRoPO900dvvv2vVH7wZovG+M1m6w==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "w2gUqXN/jNIuvqYwX3lbXagsizVNXYyt6LlF57+tMve4JYCEgCMMAjRce6uKcDASJgpMbErRT1PfHy2OhbkqEA==",
+ "resolved": "9.0.4",
+ "contentHash": "0MXlimU4Dud6t+iNi5NEz3dO2w1HXdhoOLaYFuLPCjAsvlPQGwOT6V2KZRMLEhCAm/stSZt1AUv0XmDdkjvtbw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "System.Diagnostics.DiagnosticSource": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "System.Diagnostics.DiagnosticSource": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Configuration": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "MeZePlyu3/74Wk4FHYSzXijADJUhWa7gxtaphLxhS8zEPWdJuBCrPo0sezdCSZaKCL+cZLSLobrb7xt2zHOxZQ==",
+ "resolved": "9.0.4",
+ "contentHash": "/kF+rSnoo3/nIwGzWsR4RgBnoTOdZ3lzz2qFRyp/GgaNid4j6hOAQrs/O+QHXhlcAdZxjg37MvtIE+pAvIgi9g==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Binder": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Console": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "YUzguHYlWfp4upfYlpVe3dnY59P25wc+/YLJ9/NQcblT3EvAB1CObQulClll7NtnFbbx4Js0a0UfyS8SbRsWXQ==",
+ "resolved": "9.0.4",
+ "contentHash": "cI0lQe0js65INCTCtAgnlVJWKgzgoRHVAW1B1zwCbmcliO4IZoTf92f1SYbLeLk7FzMJ/GlCvjLvJegJ6kltmQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging.Configuration": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "System.Text.Json": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "System.Text.Json": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Debug": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "pzdyibIV8k4sym0Sszcp2MJCuXrpOGs9qfOvY+hCRu8k4HbdVoeKOLnacxHK6vEPITX5o5FjjsZW2zScLXTjYA==",
+ "resolved": "9.0.4",
+ "contentHash": "D1jy+jy+huUUxnkZ0H480RZK8vqKn8NsQxYpMpPL/ALPPh1WATVLcr/uXI3RUBB45wMW5265O+hk9x3jnnXFuA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Logging.EventLog": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "+a4RlbwFWjsMujNNhf1Jy9Nm5CpMT+nxXxfgrkRSloPo0OAWhPSPsrFo6VWpvgIPPS41qmfAVWr3DqAmOoVZgQ==",
+ "resolved": "9.0.4",
+ "contentHash": "bApxdklf7QTsONOLR5ow6SdDFXR5ncHvumSEg2+QnCvxvkzc2z5kNn7yQCyupRLRN4jKbnlTkVX8x9qLlwL6Qg==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "System.Diagnostics.EventLog": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "System.Diagnostics.EventLog": "9.0.4"
}
},
"Microsoft.Extensions.Logging.EventSource": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "d47ZRZUOg1dGOX+yisWScQ7w4+92OlR9beS2UXaiadUCA3RFoZzobzVgrzBX7Oo/qefx9LxdRcaeFpWKb3BNBw==",
+ "resolved": "9.0.4",
+ "contentHash": "R600zTxVJNw2IeAEOvdOJGNA1lHr1m3vo460hSF5G1DjwP0FNpyeH4lpLDMuf34diKwB1LTt5hBw1iF1/iuwsQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1",
- "System.Text.Json": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4",
+ "System.Text.Json": "9.0.4"
}
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "nggoNKnWcsBIAaOWHA+53XZWrslC7aGeok+aR+epDPRy7HI7GwMnGZE8yEsL2Onw7kMOHVHwKcsDls1INkNUJQ==",
+ "resolved": "9.0.4",
+ "contentHash": "fiFI2+58kicqVZyt/6obqoFwHiab7LC4FkQ3mmiBJ28Yy4fAvy2+v9MRnSvvlOO8chTOjKsdafFl/K9veCPo5g==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "8RRKWtuU4fR+8MQLR/8CqZwZ9yc2xCpllw/WPRY7kskIqEq0hMcEI4AfUJO72yGiK2QJkrsDcUvgB5Yc+3+lyg==",
+ "resolved": "9.0.4",
+ "contentHash": "aridVhAT3Ep+vsirR1pzjaOw0Jwiob6dc73VFQn2XmDfBA2X98M8YKO1GarvsXRX7gX1Aj+hj2ijMzrMHDOm0A==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Binder": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Options.DataAnnotations": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "T16k12gDWOoi9W/oueC7knsZxm3ZjqmrQBFLXx9UH3Kv4fbehMyiOdhi5u1Vw7M4g0uMj21InBfgDE0570byEQ==",
+ "resolved": "9.0.4",
+ "contentHash": "jJq7xO1PLi//cts59Yp6dKNN07xV0Day/JmVR7aXCdo2rYHAoFlyARyxrfB0CTzsErA+TOhYTz2Ee0poR8SPeQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "bHtTesA4lrSGD1ZUaMIx6frU3wyy0vYtTa/hM6gGQu5QNrydObv8T5COiGUWsisflAfmsaFOe9Xvw5NSO99z0g=="
+ "resolved": "9.0.4",
+ "contentHash": "SPFyMjyku1nqTFFJ928JAMd0QnRe4xjE7KeKnZMWXf3xk+6e0WiOZAluYtLdbJUXtsl2cCRSi8cBquJ408k8RA=="
},
"Microsoft.Security.Extensions": {
"type": "Transitive",
@@ -409,6 +418,16 @@
"Serilog": "4.2.0"
}
},
+ "Serilog.Settings.Configuration": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "4/Et4Cqwa+F88l5SeFeNZ4c4Z6dEAIKbu3MaQb2Zz9F/g27T5a3wvfMcmCOaAiACjfUb4A6wrlTVfyYUZk3RRQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "9.0.0",
+ "Microsoft.Extensions.DependencyModel": "9.0.0",
+ "Serilog": "4.2.0"
+ }
+ },
"Serilog.Sinks.Console": {
"type": "Transitive",
"resolved": "6.0.0",
@@ -427,18 +446,18 @@
},
"System.Diagnostics.DiagnosticSource": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "yOcDWx4P/s1I83+7gQlgQLmhny2eNcU0cfo1NBWi+en4EAI38Jau+/neT85gUW6w1s7+FUJc2qNOmmwGLIREqA=="
+ "resolved": "9.0.4",
+ "contentHash": "Be0emq8bRmcK4eeJIFUt9+vYPf7kzuQrFs8Ef1CdGvXpq/uSve22PTSkRF09bF/J7wmYJ2DHf2v7GaT3vMXnwQ=="
},
"System.Diagnostics.EventLog": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "iVnDpgYJsRaRFnk77kcLA3+913WfWDtnAKrQl9tQ5ahqKANTaJKmQdsuPWWiAPWE9pk1Kj4Pg9JGXWfFYYyakQ=="
+ "resolved": "9.0.4",
+ "contentHash": "getRQEXD8idlpb1KW56XuxImMy0FKp2WJPDf3Qr0kI/QKxxJSftqfDFVo0DZ3HCJRLU73qHSruv5q2l5O47jQQ=="
},
"System.IO.Pipelines": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "uXf5o8eV/gtzDQY4lGROLFMWQvcViKcF8o4Q6KpIOjloAQXrnscQSu6gTxYJMHuNJnh7szIF9AzkaEq+zDLoEg=="
+ "resolved": "9.0.4",
+ "contentHash": "luF2Xba+lTe2GOoNQdZLe8q7K6s7nSpWZl9jIwWNMszN4/Yv0lmxk9HISgMmwdyZ83i3UhAGXaSY9o6IJBUuuA=="
},
"System.Reflection.Metadata": {
"type": "Transitive",
@@ -447,24 +466,24 @@
},
"System.ServiceProcess.ServiceController": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "Ghm4yP29P3cC65Qof8CrgU3WO/q3ERtht6/CrvcUl1FgRs6D7exj75GuG4ciRv0sjygtvyd675924DFsxxnEgA==",
+ "resolved": "9.0.4",
+ "contentHash": "j6Z+ED1d/yxe/Cm+UlFf+LNw2HSYBSgtFh71KnEEmUtHIwgoTVQxji5URvXPOAZ7iuKHItjMIzpCLyRZc8OmrQ==",
"dependencies": {
- "System.Diagnostics.EventLog": "9.0.1"
+ "System.Diagnostics.EventLog": "9.0.4"
}
},
"System.Text.Encodings.Web": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "XkspqduP2t1e1x2vBUAD/xZ5ZDvmywuUwsmB93MvyQLospJfqtX0GsR/kU0vUL2h4kmvf777z3txV2W4NrQ9Qg=="
+ "resolved": "9.0.4",
+ "contentHash": "V+5cCPpk1S2ngekUs9nDrQLHGiWFZMg8BthADQr+Fwi59a8DdHFu26S2oi9Bfgv+d67bqmkPqctJXMEXiimXUg=="
},
"System.Text.Json": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "eqWHDZqYPv1PvuvoIIx5pF74plL3iEOZOl/0kQP+Y0TEbtgNnM2W6k8h8EPYs+LTJZsXuWa92n5W5sHTWvE3VA==",
+ "resolved": "9.0.4",
+ "contentHash": "pYtmpcO6R3Ef1XilZEHgXP2xBPVORbYEzRP7dl0IAAbN8Dm+kfwio8aCKle97rAWXOExr292MuxWYurIuwN62g==",
"dependencies": {
- "System.IO.Pipelines": "9.0.1",
- "System.Text.Encodings.Web": "9.0.1"
+ "System.IO.Pipelines": "9.0.4",
+ "System.Text.Encodings.Web": "9.0.4"
}
},
"Coder.Desktop.CoderSdk": {
@@ -490,12 +509,13 @@
"dependencies": {
"Coder.Desktop.CoderSdk": "[1.0.0, )",
"Coder.Desktop.Vpn": "[1.0.0, )",
- "Microsoft.Extensions.Hosting": "[9.0.1, )",
- "Microsoft.Extensions.Hosting.WindowsServices": "[9.0.1, )",
- "Microsoft.Extensions.Options.DataAnnotations": "[9.0.1, )",
+ "Microsoft.Extensions.Hosting": "[9.0.4, )",
+ "Microsoft.Extensions.Hosting.WindowsServices": "[9.0.4, )",
+ "Microsoft.Extensions.Options.DataAnnotations": "[9.0.4, )",
"Microsoft.Security.Extensions": "[1.3.0, )",
"Semver": "[3.0.0, )",
"Serilog.Extensions.Hosting": "[9.0.0, )",
+ "Serilog.Settings.Configuration": "[9.0.0, )",
"Serilog.Sinks.Console": "[6.0.0, )",
"Serilog.Sinks.File": "[6.0.0, )"
}
diff --git a/Vpn.Service/ManagerConfig.cs b/Vpn.Service/ManagerConfig.cs
index c7f8863..c60b1b8 100644
--- a/Vpn.Service/ManagerConfig.cs
+++ b/Vpn.Service/ManagerConfig.cs
@@ -15,8 +15,6 @@ public class ManagerConfig
[Required] public string TunnelBinaryPath { get; set; } = @"C:\coder-vpn.exe";
- [Required] public string LogFileLocation { get; set; } = @"C:\coder-desktop-service.log";
-
// If empty, signatures will not be verified.
[Required] public string TunnelBinarySignatureSigner { get; set; } = "Coder Technologies Inc.";
diff --git a/Vpn.Service/Program.cs b/Vpn.Service/Program.cs
index 69b6ea8..fc61247 100644
--- a/Vpn.Service/Program.cs
+++ b/Vpn.Service/Program.cs
@@ -3,6 +3,7 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Win32;
using Serilog;
+using ILogger = Serilog.ILogger;
namespace Coder.Desktop.Vpn.Service;
@@ -14,29 +15,22 @@ public static class Program
// installer.
#if !DEBUG
private const string ServiceName = "Coder Desktop";
- private const string ManagerConfigSection = "Manager";
+ private const string ConfigSubKey = @"SOFTWARE\Coder Desktop\VpnService";
#else
// This value matches Create-Service.ps1.
private const string ServiceName = "Coder Desktop (Debug)";
- private const string ManagerConfigSection = "DebugManager";
+ private const string ConfigSubKey = @"SOFTWARE\Coder Desktop\DebugVpnService";
#endif
- private const string ConsoleOutputTemplate =
- "[{Timestamp:HH:mm:ss} {Level:u3}] {SourceContext} - {Message:lj}{NewLine}{Exception}";
-
- private const string FileOutputTemplate =
- "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext} - {Message:lj}{NewLine}{Exception}";
+ private const string ManagerConfigSection = "Manager";
private static ILogger MainLogger => Log.ForContext("SourceContext", "Coder.Desktop.Vpn.Service.Program");
- private static LoggerConfiguration BaseLogConfig => new LoggerConfiguration()
- .Enrich.FromLogContext()
- .MinimumLevel.Debug()
- .WriteTo.Console(outputTemplate: ConsoleOutputTemplate);
-
public static async Task Main(string[] args)
{
- Log.Logger = BaseLogConfig.CreateLogger();
+ // This logger will only be used until we load our full logging configuration and replace it.
+ Log.Logger = new LoggerConfiguration().MinimumLevel.Debug().WriteTo.Console()
+ .CreateLogger();
MainLogger.Information("Application is starting");
try
{
@@ -58,27 +52,26 @@ public static async Task Main(string[] args)
private static async Task BuildAndRun(string[] args)
{
var builder = Host.CreateApplicationBuilder(args);
+ var configBuilder = builder.Configuration as IConfigurationBuilder;
// Configuration sources
builder.Configuration.Sources.Clear();
- (builder.Configuration as IConfigurationBuilder).Add(
- new RegistryConfigurationSource(Registry.LocalMachine, @"SOFTWARE\Coder Desktop"));
+ AddDefaultConfig(configBuilder);
+ configBuilder.Add(
+ new RegistryConfigurationSource(Registry.LocalMachine, ConfigSubKey));
builder.Configuration.AddEnvironmentVariables("CODER_MANAGER_");
builder.Configuration.AddCommandLine(args);
// Options types (these get registered as IOptions singletons)
builder.Services.AddOptions()
.Bind(builder.Configuration.GetSection(ManagerConfigSection))
- .ValidateDataAnnotations()
- .PostConfigure(config =>
- {
- Log.Logger = BaseLogConfig
- .WriteTo.File(config.LogFileLocation, outputTemplate: FileOutputTemplate)
- .CreateLogger();
- });
+ .ValidateDataAnnotations();
// Logging
- builder.Services.AddSerilog();
+ builder.Services.AddSerilog((_, loggerConfig) =>
+ {
+ loggerConfig.ReadFrom.Configuration(builder.Configuration);
+ });
// Singletons
builder.Services.AddSingleton();
@@ -101,6 +94,32 @@ private static async Task BuildAndRun(string[] args)
builder.Services.AddHostedService();
builder.Services.AddHostedService();
- await builder.Build().RunAsync();
+ var host = builder.Build();
+ Log.Logger = (ILogger)host.Services.GetService(typeof(ILogger))!;
+ MainLogger.Information("Application is starting");
+
+ await host.RunAsync();
+ }
+
+ private static void AddDefaultConfig(IConfigurationBuilder builder)
+ {
+ builder.AddInMemoryCollection(new Dictionary
+ {
+ ["Serilog:Using:0"] = "Serilog.Sinks.File",
+ ["Serilog:Using:1"] = "Serilog.Sinks.Console",
+
+ ["Serilog:MinimumLevel"] = "Information",
+ ["Serilog:Enrich:0"] = "FromLogContext",
+
+ ["Serilog:WriteTo:0:Name"] = "File",
+ ["Serilog:WriteTo:0:Args:path"] = @"C:\coder-desktop-service.log",
+ ["Serilog:WriteTo:0:Args:outputTemplate"] =
+ "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {SourceContext} - {Message:lj}{NewLine}{Exception}",
+ ["Serilog:WriteTo:0:Args:rollingInterval"] = "Day",
+
+ ["Serilog:WriteTo:1:Name"] = "Console",
+ ["Serilog:WriteTo:1:Args:outputTemplate"] =
+ "[{Timestamp:HH:mm:ss} {Level:u3}] {SourceContext} - {Message:lj}{NewLine}{Exception}",
+ });
}
}
diff --git a/Vpn.Service/Vpn.Service.csproj b/Vpn.Service/Vpn.Service.csproj
index acaeb3c..aaed3cc 100644
--- a/Vpn.Service/Vpn.Service.csproj
+++ b/Vpn.Service/Vpn.Service.csproj
@@ -25,12 +25,13 @@
-
-
-
+
+
+
+
diff --git a/Vpn.Service/packages.lock.json b/Vpn.Service/packages.lock.json
index fb4185a..09c7b76 100644
--- a/Vpn.Service/packages.lock.json
+++ b/Vpn.Service/packages.lock.json
@@ -4,53 +4,53 @@
"net8.0-windows7.0": {
"Microsoft.Extensions.Hosting": {
"type": "Direct",
- "requested": "[9.0.1, )",
- "resolved": "9.0.1",
- "contentHash": "3wZNcVvC8RW44HDqqmIq+BqF5pgmTQdbNdR9NyYw33JSMnJuclwoJ2PEkrJ/KvD1U/hmqHVL3l5If+Hn3D1fWA==",
- "dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Binder": "9.0.1",
- "Microsoft.Extensions.Configuration.CommandLine": "9.0.1",
- "Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.1",
- "Microsoft.Extensions.Configuration.FileExtensions": "9.0.1",
- "Microsoft.Extensions.Configuration.Json": "9.0.1",
- "Microsoft.Extensions.Configuration.UserSecrets": "9.0.1",
- "Microsoft.Extensions.DependencyInjection": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Diagnostics": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.1",
- "Microsoft.Extensions.Hosting.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging.Configuration": "9.0.1",
- "Microsoft.Extensions.Logging.Console": "9.0.1",
- "Microsoft.Extensions.Logging.Debug": "9.0.1",
- "Microsoft.Extensions.Logging.EventLog": "9.0.1",
- "Microsoft.Extensions.Logging.EventSource": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1"
+ "requested": "[9.0.4, )",
+ "resolved": "9.0.4",
+ "contentHash": "1rZwLE+tTUIyZRUzmlk/DQj+v+Eqox+rjb+X7Fi+cYTbQfIZPYwpf1pVybsV3oje8+Pe4GaNukpBVUlPYeQdeQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.4",
+ "Microsoft.Extensions.Configuration.CommandLine": "9.0.4",
+ "Microsoft.Extensions.Configuration.EnvironmentVariables": "9.0.4",
+ "Microsoft.Extensions.Configuration.FileExtensions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Json": "9.0.4",
+ "Microsoft.Extensions.Configuration.UserSecrets": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Diagnostics": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.4",
+ "Microsoft.Extensions.Hosting.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.4",
+ "Microsoft.Extensions.Logging.Console": "9.0.4",
+ "Microsoft.Extensions.Logging.Debug": "9.0.4",
+ "Microsoft.Extensions.Logging.EventLog": "9.0.4",
+ "Microsoft.Extensions.Logging.EventSource": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4"
}
},
"Microsoft.Extensions.Hosting.WindowsServices": {
"type": "Direct",
- "requested": "[9.0.1, )",
- "resolved": "9.0.1",
- "contentHash": "FLapgOXQzPjUsbMqjjagCFCiGjroRmrmHQVK3/PEovRIvDU6nLk7KKs4PalzEHaIfqG+PySlY/BeLTyZtjcshg==",
+ "requested": "[9.0.4, )",
+ "resolved": "9.0.4",
+ "contentHash": "QFeUS0NG4Kwq91Mf1WzVZSbBtw+nKxyOQTi4xTRUEQ2gC7HWiyCUiX0arMJxt9lWwbjXxQY9TQjDptm+ct7BkQ==",
"dependencies": {
- "Microsoft.Extensions.Hosting": "9.0.1",
- "Microsoft.Extensions.Logging.EventLog": "9.0.1",
- "System.ServiceProcess.ServiceController": "9.0.1"
+ "Microsoft.Extensions.Hosting": "9.0.4",
+ "Microsoft.Extensions.Logging.EventLog": "9.0.4",
+ "System.ServiceProcess.ServiceController": "9.0.4"
}
},
"Microsoft.Extensions.Options.DataAnnotations": {
"type": "Direct",
- "requested": "[9.0.1, )",
- "resolved": "9.0.1",
- "contentHash": "T16k12gDWOoi9W/oueC7knsZxm3ZjqmrQBFLXx9UH3Kv4fbehMyiOdhi5u1Vw7M4g0uMj21InBfgDE0570byEQ==",
+ "requested": "[9.0.4, )",
+ "resolved": "9.0.4",
+ "contentHash": "jJq7xO1PLi//cts59Yp6dKNN07xV0Day/JmVR7aXCdo2rYHAoFlyARyxrfB0CTzsErA+TOhYTz2Ee0poR8SPeQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4"
}
},
"Microsoft.Security.Extensions": {
@@ -81,6 +81,17 @@
"Serilog.Extensions.Logging": "9.0.0"
}
},
+ "Serilog.Settings.Configuration": {
+ "type": "Direct",
+ "requested": "[9.0.0, )",
+ "resolved": "9.0.0",
+ "contentHash": "4/Et4Cqwa+F88l5SeFeNZ4c4Z6dEAIKbu3MaQb2Zz9F/g27T5a3wvfMcmCOaAiACjfUb4A6wrlTVfyYUZk3RRQ==",
+ "dependencies": {
+ "Microsoft.Extensions.Configuration.Binder": "9.0.0",
+ "Microsoft.Extensions.DependencyModel": "9.0.0",
+ "Serilog": "4.2.0"
+ }
+ },
"Serilog.Sinks.Console": {
"type": "Direct",
"requested": "[6.0.0, )",
@@ -106,257 +117,266 @@
},
"Microsoft.Extensions.Configuration": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "VuthqFS+ju6vT8W4wevdhEFiRi1trvQtkzWLonApfF5USVzzDcTBoY3F24WvN/tffLSrycArVfX1bThm/9xY2A==",
+ "resolved": "9.0.4",
+ "contentHash": "KIVBrMbItnCJDd1RF4KEaE8jZwDJcDUJW5zXpbwQ05HNYTK1GveHxHK0B3SjgDJuR48GRACXAO+BLhL8h34S7g==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "+4hfFIY1UjBCXFTTOd+ojlDPq6mep3h5Vq5SYE3Pjucr7dNXmq4S/6P/LoVnZFz2e/5gWp/om4svUFgznfULcA==",
+ "resolved": "9.0.4",
+ "contentHash": "0LN/DiIKvBrkqp7gkF3qhGIeZk6/B63PthAHjQsxymJfIBcz0kbf4/p/t4lMgggVxZ+flRi5xvTwlpPOoZk8fg==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.Binder": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "w7kAyu1Mm7eParRV6WvGNNwA8flPTub16fwH49h7b/yqJZFTgYxnOVCuiah3G2bgseJMEq4DLjjsyQRvsdzRgA==",
+ "resolved": "9.0.4",
+ "contentHash": "cdrjcl9RIcwt3ECbnpP0Gt1+pkjdW90mq5yFYy8D9qRj2NqFFcv3yDp141iEamsd9E218sGxK8WHaIOcrqgDJg==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.CommandLine": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "5WC1OsXfljC1KHEyL0yefpAyt1UZjrZ0/xyOqFowc5VntbE79JpCYOTSYFlxEuXm3Oq5xsgU2YXeZLTgAAX+DA==",
+ "resolved": "9.0.4",
+ "contentHash": "TbM2HElARG7z1gxwakdppmOkm1SykPqDcu3EF97daEwSb/+TXnRrFfJtF+5FWWxcsNhbRrmLfS2WszYcab7u1A==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "5HShUdF8KFAUSzoEu0DOFbX09FlcFtHxEalowyjM7Kji0EjdF0DLjHajb2IBvoqsExAYox+Z2GfbfGF7dH7lKQ==",
+ "resolved": "9.0.4",
+ "contentHash": "2IGiG3FtVnD83IA6HYGuNei8dOw455C09yEhGl8bjcY6aGZgoC6yhYvDnozw8wlTowfoG9bxVrdTsr2ACZOYHg==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.FileExtensions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "QBOI8YVAyKqeshYOyxSe6co22oag431vxMu5xQe1EjXMkYE4xK4J71xLCW3/bWKmr9Aoy1VqGUARSLFnotk4Bg==",
+ "resolved": "9.0.4",
+ "contentHash": "UY864WQ3AS2Fkc8fYLombWnjrXwYt+BEHHps0hY4sxlgqaVW06AxbpgRZjfYf8PyRbplJqruzZDB/nSLT+7RLQ==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.Json": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "z+g+lgPET1JRDjsOkFe51rkkNcnJgvOK5UIpeTfF1iAi0GkBJz5/yUuTa8a9V8HUh4gj4xFT5WGoMoXoSDKfGg==",
+ "resolved": "9.0.4",
+ "contentHash": "vVXI70CgT/dmXV3MM+n/BR2rLXEoAyoK0hQT+8MrbCMuJBiLRxnTtSrksNiASWCwOtxo/Tyy7CO8AGthbsYxnw==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.FileExtensions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "System.Text.Json": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.FileExtensions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "System.Text.Json": "9.0.4"
}
},
"Microsoft.Extensions.Configuration.UserSecrets": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "esGPOgLZ1tZddEomexhrU+LJ5YIsuJdkh0tU7r4WVpNZ15dLuMPqPW4Xe4txf3T2PDUX2ILe3nYQEDjZjfSEJg==",
+ "resolved": "9.0.4",
+ "contentHash": "zuvyC72gJkJyodyGowCuz3EQ1QvzNXJtKusuRzmjoHr17aeB3X0aSiKFB++HMHnQIWWlPOBf9YHTQfEqzbgl1g==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Json": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Physical": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Json": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Physical": "9.0.4"
}
},
"Microsoft.Extensions.DependencyInjection": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "qZI42ASAe3hr2zMSA6UjM92pO1LeDq5DcwkgSowXXPY8I56M76pEKrnmsKKbxagAf39AJxkH2DY4sb72ixyOrg==",
+ "resolved": "9.0.4",
+ "contentHash": "f2MTUaS2EQ3lX4325ytPAISZqgBfXmY0WvgD80ji6Z20AoDNiCESxsqo6mFRwHJD/jfVKRw9FsW6+86gNre3ug==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "Tr74eP0oQ3AyC24ch17N8PuEkrPbD0JqIfENCYqmgKYNOmL8wQKzLJu3ObxTUDrjnn4rHoR1qKa37/eQyHmCDA=="
+ "resolved": "9.0.4",
+ "contentHash": "UI0TQPVkS78bFdjkTodmkH0Fe8lXv9LnhGFKgKrsgUJ5a5FVdFRcgjIkBVLbGgdRhxWirxH/8IXUtEyYJx6GQg=="
+ },
+ "Microsoft.Extensions.DependencyModel": {
+ "type": "Transitive",
+ "resolved": "9.0.0",
+ "contentHash": "saxr2XzwgDU77LaQfYFXmddEDRUKHF4DaGMZkNB3qjdVSZlax3//dGJagJkKrGMIPNZs2jVFXITyCCR6UHJNdA==",
+ "dependencies": {
+ "System.Text.Encodings.Web": "9.0.0",
+ "System.Text.Json": "9.0.0"
+ }
},
"Microsoft.Extensions.Diagnostics": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "4ZmP6turxMFsNwK/MCko2fuIITaYYN/eXyyIRq1FjLDKnptdbn6xMb7u0zfSMzCGpzkx4RxH/g1jKN2IchG7uA==",
+ "resolved": "9.0.4",
+ "contentHash": "1bCSQrGv9+bpF5MGKF6THbnRFUZqQDrWPA39NDeVW9djeHBmow8kX4SX6/8KkeKI8gmUDG7jsG/bVuNAcY/ATQ==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.4"
}
},
"Microsoft.Extensions.Diagnostics.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "pfAPuVtHvG6dvZtAa0OQbXdDqq6epnr8z0/IIUjdmV0tMeI8Aj9KxDXvdDvqr+qNHTkmA7pZpChNxwNZt4GXVg==",
+ "resolved": "9.0.4",
+ "contentHash": "IAucBcHYtiCmMyFag+Vrp5m+cjGRlDttJk9Vx7Dqpq+Ama4BzVUOk0JARQakgFFr7ZTBSgLKlHmtY5MiItB7Cg==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "System.Diagnostics.DiagnosticSource": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "System.Diagnostics.DiagnosticSource": "9.0.4"
}
},
"Microsoft.Extensions.FileProviders.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "DguZYt1DWL05+8QKWL3b6bW7A2pC5kYFMY5iXM6W2M23jhvcNa8v6AU8PvVJBcysxHwr9/jax0agnwoBumsSwg==",
+ "resolved": "9.0.4",
+ "contentHash": "gQN2o/KnBfVk6Bd71E2YsvO5lsqrqHmaepDGk+FB/C4aiQY9B0XKKNKfl5/TqcNOs9OEithm4opiMHAErMFyEw==",
"dependencies": {
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.FileProviders.Physical": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "TKDMNRS66UTMEVT38/tU9hA63UTMvzI3DyNm5mx8+JCf3BaOtxgrvWLCI1y3J52PzT5yNl/T2KN5Z0KbApLZcg==",
+ "resolved": "9.0.4",
+ "contentHash": "qkQ9V7KFZdTWNThT7ke7E/Jad38s46atSs3QUYZB8f3thBTrcrousdY4Y/tyCtcH5YjsPSiByjuN+L8W/ThMQg==",
"dependencies": {
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileSystemGlobbing": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileSystemGlobbing": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.FileSystemGlobbing": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "Mxcp9NXuQMvAnudRZcgIb5SqlWrlullQzntBLTwuv0MPIJ5LqiGwbRqiyxgdk+vtCoUkplb0oXy5kAw1t469Ug=="
+ "resolved": "9.0.4",
+ "contentHash": "05Lh2ItSk4mzTdDWATW9nEcSybwprN8Tz42Fs5B+jwdXUpauktdAQUI1Am4sUQi2C63E5hvQp8gXvfwfg9mQGQ=="
},
"Microsoft.Extensions.Hosting.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "CwSMhLNe8HLkfbFzdz0CHWJhtWH3TtfZSicLBd/itFD+NqQtfGHmvqXHQbaFFl3mQB5PBb2gxwzWQyW2pIj7PA==",
+ "resolved": "9.0.4",
+ "contentHash": "bXkwRPMo4x19YKH6/V9XotU7KYQJlihXhcWO1RDclAY3yfY3XNg4QtSEBvng4kK/DnboE0O/nwSl+6Jiv9P+FA==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.1",
- "Microsoft.Extensions.FileProviders.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Diagnostics.Abstractions": "9.0.4",
+ "Microsoft.Extensions.FileProviders.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Logging": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "E/k5r7S44DOW+08xQPnNbO8DKAQHhkspDboTThNJ6Z3/QBb4LC6gStNWzVmy3IvW7sUD+iJKf4fj0xEkqE7vnQ==",
+ "resolved": "9.0.4",
+ "contentHash": "xW6QPYsqhbuWBO9/1oA43g/XPKbohJx+7G8FLQgQXIriYvY7s+gxr2wjQJfRoPO900dvvv2vVH7wZovG+M1m6w==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Abstractions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "w2gUqXN/jNIuvqYwX3lbXagsizVNXYyt6LlF57+tMve4JYCEgCMMAjRce6uKcDASJgpMbErRT1PfHy2OhbkqEA==",
+ "resolved": "9.0.4",
+ "contentHash": "0MXlimU4Dud6t+iNi5NEz3dO2w1HXdhoOLaYFuLPCjAsvlPQGwOT6V2KZRMLEhCAm/stSZt1AUv0XmDdkjvtbw==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "System.Diagnostics.DiagnosticSource": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "System.Diagnostics.DiagnosticSource": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Configuration": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "MeZePlyu3/74Wk4FHYSzXijADJUhWa7gxtaphLxhS8zEPWdJuBCrPo0sezdCSZaKCL+cZLSLobrb7xt2zHOxZQ==",
+ "resolved": "9.0.4",
+ "contentHash": "/kF+rSnoo3/nIwGzWsR4RgBnoTOdZ3lzz2qFRyp/GgaNid4j6hOAQrs/O+QHXhlcAdZxjg37MvtIE+pAvIgi9g==",
"dependencies": {
- "Microsoft.Extensions.Configuration": "9.0.1",
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Binder": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.1"
+ "Microsoft.Extensions.Configuration": "9.0.4",
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "Microsoft.Extensions.Options.ConfigurationExtensions": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Console": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "YUzguHYlWfp4upfYlpVe3dnY59P25wc+/YLJ9/NQcblT3EvAB1CObQulClll7NtnFbbx4Js0a0UfyS8SbRsWXQ==",
+ "resolved": "9.0.4",
+ "contentHash": "cI0lQe0js65INCTCtAgnlVJWKgzgoRHVAW1B1zwCbmcliO4IZoTf92f1SYbLeLk7FzMJ/GlCvjLvJegJ6kltmQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging.Configuration": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "System.Text.Json": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging.Configuration": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "System.Text.Json": "9.0.4"
}
},
"Microsoft.Extensions.Logging.Debug": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "pzdyibIV8k4sym0Sszcp2MJCuXrpOGs9qfOvY+hCRu8k4HbdVoeKOLnacxHK6vEPITX5o5FjjsZW2zScLXTjYA==",
+ "resolved": "9.0.4",
+ "contentHash": "D1jy+jy+huUUxnkZ0H480RZK8vqKn8NsQxYpMpPL/ALPPh1WATVLcr/uXI3RUBB45wMW5265O+hk9x3jnnXFuA==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4"
}
},
"Microsoft.Extensions.Logging.EventLog": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "+a4RlbwFWjsMujNNhf1Jy9Nm5CpMT+nxXxfgrkRSloPo0OAWhPSPsrFo6VWpvgIPPS41qmfAVWr3DqAmOoVZgQ==",
+ "resolved": "9.0.4",
+ "contentHash": "bApxdklf7QTsONOLR5ow6SdDFXR5ncHvumSEg2+QnCvxvkzc2z5kNn7yQCyupRLRN4jKbnlTkVX8x9qLlwL6Qg==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "System.Diagnostics.EventLog": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "System.Diagnostics.EventLog": "9.0.4"
}
},
"Microsoft.Extensions.Logging.EventSource": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "d47ZRZUOg1dGOX+yisWScQ7w4+92OlR9beS2UXaiadUCA3RFoZzobzVgrzBX7Oo/qefx9LxdRcaeFpWKb3BNBw==",
+ "resolved": "9.0.4",
+ "contentHash": "R600zTxVJNw2IeAEOvdOJGNA1lHr1m3vo460hSF5G1DjwP0FNpyeH4lpLDMuf34diKwB1LTt5hBw1iF1/iuwsQ==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Logging": "9.0.1",
- "Microsoft.Extensions.Logging.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1",
- "System.Text.Json": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Logging": "9.0.4",
+ "Microsoft.Extensions.Logging.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4",
+ "System.Text.Json": "9.0.4"
}
},
"Microsoft.Extensions.Options": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "nggoNKnWcsBIAaOWHA+53XZWrslC7aGeok+aR+epDPRy7HI7GwMnGZE8yEsL2Onw7kMOHVHwKcsDls1INkNUJQ==",
+ "resolved": "9.0.4",
+ "contentHash": "fiFI2+58kicqVZyt/6obqoFwHiab7LC4FkQ3mmiBJ28Yy4fAvy2+v9MRnSvvlOO8chTOjKsdafFl/K9veCPo5g==",
"dependencies": {
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "8RRKWtuU4fR+8MQLR/8CqZwZ9yc2xCpllw/WPRY7kskIqEq0hMcEI4AfUJO72yGiK2QJkrsDcUvgB5Yc+3+lyg==",
+ "resolved": "9.0.4",
+ "contentHash": "aridVhAT3Ep+vsirR1pzjaOw0Jwiob6dc73VFQn2XmDfBA2X98M8YKO1GarvsXRX7gX1Aj+hj2ijMzrMHDOm0A==",
"dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "9.0.1",
- "Microsoft.Extensions.Configuration.Binder": "9.0.1",
- "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.1",
- "Microsoft.Extensions.Options": "9.0.1",
- "Microsoft.Extensions.Primitives": "9.0.1"
+ "Microsoft.Extensions.Configuration.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Configuration.Binder": "9.0.4",
+ "Microsoft.Extensions.DependencyInjection.Abstractions": "9.0.4",
+ "Microsoft.Extensions.Options": "9.0.4",
+ "Microsoft.Extensions.Primitives": "9.0.4"
}
},
"Microsoft.Extensions.Primitives": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "bHtTesA4lrSGD1ZUaMIx6frU3wyy0vYtTa/hM6gGQu5QNrydObv8T5COiGUWsisflAfmsaFOe9Xvw5NSO99z0g=="
+ "resolved": "9.0.4",
+ "contentHash": "SPFyMjyku1nqTFFJ928JAMd0QnRe4xjE7KeKnZMWXf3xk+6e0WiOZAluYtLdbJUXtsl2cCRSi8cBquJ408k8RA=="
},
"Serilog": {
"type": "Transitive",
@@ -374,39 +394,39 @@
},
"System.Diagnostics.DiagnosticSource": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "yOcDWx4P/s1I83+7gQlgQLmhny2eNcU0cfo1NBWi+en4EAI38Jau+/neT85gUW6w1s7+FUJc2qNOmmwGLIREqA=="
+ "resolved": "9.0.4",
+ "contentHash": "Be0emq8bRmcK4eeJIFUt9+vYPf7kzuQrFs8Ef1CdGvXpq/uSve22PTSkRF09bF/J7wmYJ2DHf2v7GaT3vMXnwQ=="
},
"System.Diagnostics.EventLog": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "iVnDpgYJsRaRFnk77kcLA3+913WfWDtnAKrQl9tQ5ahqKANTaJKmQdsuPWWiAPWE9pk1Kj4Pg9JGXWfFYYyakQ=="
+ "resolved": "9.0.4",
+ "contentHash": "getRQEXD8idlpb1KW56XuxImMy0FKp2WJPDf3Qr0kI/QKxxJSftqfDFVo0DZ3HCJRLU73qHSruv5q2l5O47jQQ=="
},
"System.IO.Pipelines": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "uXf5o8eV/gtzDQY4lGROLFMWQvcViKcF8o4Q6KpIOjloAQXrnscQSu6gTxYJMHuNJnh7szIF9AzkaEq+zDLoEg=="
+ "resolved": "9.0.4",
+ "contentHash": "luF2Xba+lTe2GOoNQdZLe8q7K6s7nSpWZl9jIwWNMszN4/Yv0lmxk9HISgMmwdyZ83i3UhAGXaSY9o6IJBUuuA=="
},
"System.ServiceProcess.ServiceController": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "Ghm4yP29P3cC65Qof8CrgU3WO/q3ERtht6/CrvcUl1FgRs6D7exj75GuG4ciRv0sjygtvyd675924DFsxxnEgA==",
+ "resolved": "9.0.4",
+ "contentHash": "j6Z+ED1d/yxe/Cm+UlFf+LNw2HSYBSgtFh71KnEEmUtHIwgoTVQxji5URvXPOAZ7iuKHItjMIzpCLyRZc8OmrQ==",
"dependencies": {
- "System.Diagnostics.EventLog": "9.0.1"
+ "System.Diagnostics.EventLog": "9.0.4"
}
},
"System.Text.Encodings.Web": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "XkspqduP2t1e1x2vBUAD/xZ5ZDvmywuUwsmB93MvyQLospJfqtX0GsR/kU0vUL2h4kmvf777z3txV2W4NrQ9Qg=="
+ "resolved": "9.0.4",
+ "contentHash": "V+5cCPpk1S2ngekUs9nDrQLHGiWFZMg8BthADQr+Fwi59a8DdHFu26S2oi9Bfgv+d67bqmkPqctJXMEXiimXUg=="
},
"System.Text.Json": {
"type": "Transitive",
- "resolved": "9.0.1",
- "contentHash": "eqWHDZqYPv1PvuvoIIx5pF74plL3iEOZOl/0kQP+Y0TEbtgNnM2W6k8h8EPYs+LTJZsXuWa92n5W5sHTWvE3VA==",
+ "resolved": "9.0.4",
+ "contentHash": "pYtmpcO6R3Ef1XilZEHgXP2xBPVORbYEzRP7dl0IAAbN8Dm+kfwio8aCKle97rAWXOExr292MuxWYurIuwN62g==",
"dependencies": {
- "System.IO.Pipelines": "9.0.1",
- "System.Text.Encodings.Web": "9.0.1"
+ "System.IO.Pipelines": "9.0.4",
+ "System.Text.Encodings.Web": "9.0.4"
}
},
"Coder.Desktop.CoderSdk": {