diff --git a/Directory.Packages.props b/Directory.Packages.props
new file mode 100644
index 00000000..21464c0f
--- /dev/null
+++ b/Directory.Packages.props
@@ -0,0 +1,69 @@
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ScadaLink.CLI/ScadaLink.CLI.csproj b/src/ScadaLink.CLI/ScadaLink.CLI.csproj
index d2ae9783..afb931ca 100644
--- a/src/ScadaLink.CLI/ScadaLink.CLI.csproj
+++ b/src/ScadaLink.CLI/ScadaLink.CLI.csproj
@@ -11,8 +11,8 @@
-
-
+
+
diff --git a/src/ScadaLink.CentralUI/ScadaLink.CentralUI.csproj b/src/ScadaLink.CentralUI/ScadaLink.CentralUI.csproj
index 87bda52b..3a829fb2 100644
--- a/src/ScadaLink.CentralUI/ScadaLink.CentralUI.csproj
+++ b/src/ScadaLink.CentralUI/ScadaLink.CentralUI.csproj
@@ -16,8 +16,8 @@
-
-
+
+
diff --git a/src/ScadaLink.ClusterInfrastructure/ScadaLink.ClusterInfrastructure.csproj b/src/ScadaLink.ClusterInfrastructure/ScadaLink.ClusterInfrastructure.csproj
index 55ee4be8..132c2a93 100644
--- a/src/ScadaLink.ClusterInfrastructure/ScadaLink.ClusterInfrastructure.csproj
+++ b/src/ScadaLink.ClusterInfrastructure/ScadaLink.ClusterInfrastructure.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/src/ScadaLink.Communication/ScadaLink.Communication.csproj b/src/ScadaLink.Communication/ScadaLink.Communication.csproj
index 23aa1b3e..f9be7392 100644
--- a/src/ScadaLink.Communication/ScadaLink.Communication.csproj
+++ b/src/ScadaLink.Communication/ScadaLink.Communication.csproj
@@ -16,13 +16,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/ScadaLink.ConfigurationDatabase/ScadaLink.ConfigurationDatabase.csproj b/src/ScadaLink.ConfigurationDatabase/ScadaLink.ConfigurationDatabase.csproj
index f4629720..1a9d67e5 100644
--- a/src/ScadaLink.ConfigurationDatabase/ScadaLink.ConfigurationDatabase.csproj
+++ b/src/ScadaLink.ConfigurationDatabase/ScadaLink.ConfigurationDatabase.csproj
@@ -8,16 +8,16 @@
-
-
-
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
-
+
+
+
+
diff --git a/src/ScadaLink.DataConnectionLayer/ScadaLink.DataConnectionLayer.csproj b/src/ScadaLink.DataConnectionLayer/ScadaLink.DataConnectionLayer.csproj
index 396db313..1a062542 100644
--- a/src/ScadaLink.DataConnectionLayer/ScadaLink.DataConnectionLayer.csproj
+++ b/src/ScadaLink.DataConnectionLayer/ScadaLink.DataConnectionLayer.csproj
@@ -8,14 +8,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/ScadaLink.DeploymentManager/ScadaLink.DeploymentManager.csproj b/src/ScadaLink.DeploymentManager/ScadaLink.DeploymentManager.csproj
index fc3191bb..4d0eec3b 100644
--- a/src/ScadaLink.DeploymentManager/ScadaLink.DeploymentManager.csproj
+++ b/src/ScadaLink.DeploymentManager/ScadaLink.DeploymentManager.csproj
@@ -8,9 +8,9 @@
-
-
-
+
+
+
diff --git a/src/ScadaLink.ExternalSystemGateway/ScadaLink.ExternalSystemGateway.csproj b/src/ScadaLink.ExternalSystemGateway/ScadaLink.ExternalSystemGateway.csproj
index 41838f80..1403f715 100644
--- a/src/ScadaLink.ExternalSystemGateway/ScadaLink.ExternalSystemGateway.csproj
+++ b/src/ScadaLink.ExternalSystemGateway/ScadaLink.ExternalSystemGateway.csproj
@@ -8,11 +8,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/ScadaLink.HealthMonitoring/ScadaLink.HealthMonitoring.csproj b/src/ScadaLink.HealthMonitoring/ScadaLink.HealthMonitoring.csproj
index 814bbbd0..5c356646 100644
--- a/src/ScadaLink.HealthMonitoring/ScadaLink.HealthMonitoring.csproj
+++ b/src/ScadaLink.HealthMonitoring/ScadaLink.HealthMonitoring.csproj
@@ -8,10 +8,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/ScadaLink.Host/ScadaLink.Host.csproj b/src/ScadaLink.Host/ScadaLink.Host.csproj
index 7bcb4d0b..8dcb401e 100644
--- a/src/ScadaLink.Host/ScadaLink.Host.csproj
+++ b/src/ScadaLink.Host/ScadaLink.Host.csproj
@@ -8,23 +8,23 @@
-
-
-
-
-
-
+
+
+
+
+
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
-
-
-
-
+
+
+
+
+
-
+
diff --git a/src/ScadaLink.InboundAPI/ScadaLink.InboundAPI.csproj b/src/ScadaLink.InboundAPI/ScadaLink.InboundAPI.csproj
index c75e249e..94cf9ec1 100644
--- a/src/ScadaLink.InboundAPI/ScadaLink.InboundAPI.csproj
+++ b/src/ScadaLink.InboundAPI/ScadaLink.InboundAPI.csproj
@@ -21,7 +21,7 @@
-
+
diff --git a/src/ScadaLink.ManagementService/ScadaLink.ManagementService.csproj b/src/ScadaLink.ManagementService/ScadaLink.ManagementService.csproj
index bc713b59..64cebd43 100644
--- a/src/ScadaLink.ManagementService/ScadaLink.ManagementService.csproj
+++ b/src/ScadaLink.ManagementService/ScadaLink.ManagementService.csproj
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/src/ScadaLink.NotificationService/ScadaLink.NotificationService.csproj b/src/ScadaLink.NotificationService/ScadaLink.NotificationService.csproj
index a3ed893c..43b11cf3 100644
--- a/src/ScadaLink.NotificationService/ScadaLink.NotificationService.csproj
+++ b/src/ScadaLink.NotificationService/ScadaLink.NotificationService.csproj
@@ -8,11 +8,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/ScadaLink.Security/ScadaLink.Security.csproj b/src/ScadaLink.Security/ScadaLink.Security.csproj
index 32aec4f5..c27ca875 100644
--- a/src/ScadaLink.Security/ScadaLink.Security.csproj
+++ b/src/ScadaLink.Security/ScadaLink.Security.csproj
@@ -8,12 +8,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj b/src/ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj
index 98c3ee68..587699f0 100644
--- a/src/ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj
+++ b/src/ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj
@@ -8,12 +8,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/ScadaLink.SiteRuntime/ScadaLink.SiteRuntime.csproj b/src/ScadaLink.SiteRuntime/ScadaLink.SiteRuntime.csproj
index f54462c3..2ddecd37 100644
--- a/src/ScadaLink.SiteRuntime/ScadaLink.SiteRuntime.csproj
+++ b/src/ScadaLink.SiteRuntime/ScadaLink.SiteRuntime.csproj
@@ -8,16 +8,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ScadaLink.StoreAndForward/ScadaLink.StoreAndForward.csproj b/src/ScadaLink.StoreAndForward/ScadaLink.StoreAndForward.csproj
index d37f2e33..82b3c15e 100644
--- a/src/ScadaLink.StoreAndForward/ScadaLink.StoreAndForward.csproj
+++ b/src/ScadaLink.StoreAndForward/ScadaLink.StoreAndForward.csproj
@@ -8,11 +8,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/ScadaLink.TemplateEngine/ScadaLink.TemplateEngine.csproj b/src/ScadaLink.TemplateEngine/ScadaLink.TemplateEngine.csproj
index 718e461a..8373c914 100644
--- a/src/ScadaLink.TemplateEngine/ScadaLink.TemplateEngine.csproj
+++ b/src/ScadaLink.TemplateEngine/ScadaLink.TemplateEngine.csproj
@@ -12,8 +12,8 @@
-
-
+
+
diff --git a/tests/ScadaLink.CLI.Tests/ScadaLink.CLI.Tests.csproj b/tests/ScadaLink.CLI.Tests/ScadaLink.CLI.Tests.csproj
index 87040934..1a3c75eb 100644
--- a/tests/ScadaLink.CLI.Tests/ScadaLink.CLI.Tests.csproj
+++ b/tests/ScadaLink.CLI.Tests/ScadaLink.CLI.Tests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/ScadaLink.CentralUI.PlaywrightTests/ScadaLink.CentralUI.PlaywrightTests.csproj b/tests/ScadaLink.CentralUI.PlaywrightTests/ScadaLink.CentralUI.PlaywrightTests.csproj
index de467ec1..32913fa1 100644
--- a/tests/ScadaLink.CentralUI.PlaywrightTests/ScadaLink.CentralUI.PlaywrightTests.csproj
+++ b/tests/ScadaLink.CentralUI.PlaywrightTests/ScadaLink.CentralUI.PlaywrightTests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/ScadaLink.CentralUI.Tests/ScadaLink.CentralUI.Tests.csproj b/tests/ScadaLink.CentralUI.Tests/ScadaLink.CentralUI.Tests.csproj
index fc2972db..cbab8f31 100644
--- a/tests/ScadaLink.CentralUI.Tests/ScadaLink.CentralUI.Tests.csproj
+++ b/tests/ScadaLink.CentralUI.Tests/ScadaLink.CentralUI.Tests.csproj
@@ -9,12 +9,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/tests/ScadaLink.ClusterInfrastructure.Tests/ScadaLink.ClusterInfrastructure.Tests.csproj b/tests/ScadaLink.ClusterInfrastructure.Tests/ScadaLink.ClusterInfrastructure.Tests.csproj
index c0f85df9..0dfb4688 100644
--- a/tests/ScadaLink.ClusterInfrastructure.Tests/ScadaLink.ClusterInfrastructure.Tests.csproj
+++ b/tests/ScadaLink.ClusterInfrastructure.Tests/ScadaLink.ClusterInfrastructure.Tests.csproj
@@ -9,10 +9,10 @@
-
-
-
-
+
+
+
+
diff --git a/tests/ScadaLink.Commons.Tests/ScadaLink.Commons.Tests.csproj b/tests/ScadaLink.Commons.Tests/ScadaLink.Commons.Tests.csproj
index 647e6f50..d7a9feb9 100644
--- a/tests/ScadaLink.Commons.Tests/ScadaLink.Commons.Tests.csproj
+++ b/tests/ScadaLink.Commons.Tests/ScadaLink.Commons.Tests.csproj
@@ -9,10 +9,10 @@
-
-
-
-
+
+
+
+
diff --git a/tests/ScadaLink.Communication.Tests/ScadaLink.Communication.Tests.csproj b/tests/ScadaLink.Communication.Tests/ScadaLink.Communication.Tests.csproj
index abc59aaa..68f3143d 100644
--- a/tests/ScadaLink.Communication.Tests/ScadaLink.Communication.Tests.csproj
+++ b/tests/ScadaLink.Communication.Tests/ScadaLink.Communication.Tests.csproj
@@ -9,13 +9,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/tests/ScadaLink.ConfigurationDatabase.Tests/ScadaLink.ConfigurationDatabase.Tests.csproj b/tests/ScadaLink.ConfigurationDatabase.Tests/ScadaLink.ConfigurationDatabase.Tests.csproj
index e44d1c44..cbc2ae47 100644
--- a/tests/ScadaLink.ConfigurationDatabase.Tests/ScadaLink.ConfigurationDatabase.Tests.csproj
+++ b/tests/ScadaLink.ConfigurationDatabase.Tests/ScadaLink.ConfigurationDatabase.Tests.csproj
@@ -9,14 +9,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/tests/ScadaLink.DataConnectionLayer.Tests/ScadaLink.DataConnectionLayer.Tests.csproj b/tests/ScadaLink.DataConnectionLayer.Tests/ScadaLink.DataConnectionLayer.Tests.csproj
index 150c9134..94b81a4b 100644
--- a/tests/ScadaLink.DataConnectionLayer.Tests/ScadaLink.DataConnectionLayer.Tests.csproj
+++ b/tests/ScadaLink.DataConnectionLayer.Tests/ScadaLink.DataConnectionLayer.Tests.csproj
@@ -9,12 +9,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/tests/ScadaLink.DeploymentManager.Tests/ScadaLink.DeploymentManager.Tests.csproj b/tests/ScadaLink.DeploymentManager.Tests/ScadaLink.DeploymentManager.Tests.csproj
index b8aafbea..23f2b4fa 100644
--- a/tests/ScadaLink.DeploymentManager.Tests/ScadaLink.DeploymentManager.Tests.csproj
+++ b/tests/ScadaLink.DeploymentManager.Tests/ScadaLink.DeploymentManager.Tests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/ScadaLink.ExternalSystemGateway.Tests/ScadaLink.ExternalSystemGateway.Tests.csproj b/tests/ScadaLink.ExternalSystemGateway.Tests/ScadaLink.ExternalSystemGateway.Tests.csproj
index fdd5f113..d610a02d 100644
--- a/tests/ScadaLink.ExternalSystemGateway.Tests/ScadaLink.ExternalSystemGateway.Tests.csproj
+++ b/tests/ScadaLink.ExternalSystemGateway.Tests/ScadaLink.ExternalSystemGateway.Tests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/ScadaLink.HealthMonitoring.Tests/ScadaLink.HealthMonitoring.Tests.csproj b/tests/ScadaLink.HealthMonitoring.Tests/ScadaLink.HealthMonitoring.Tests.csproj
index bae45fa1..1de697fd 100644
--- a/tests/ScadaLink.HealthMonitoring.Tests/ScadaLink.HealthMonitoring.Tests.csproj
+++ b/tests/ScadaLink.HealthMonitoring.Tests/ScadaLink.HealthMonitoring.Tests.csproj
@@ -9,12 +9,12 @@
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/tests/ScadaLink.Host.Tests/ScadaLink.Host.Tests.csproj b/tests/ScadaLink.Host.Tests/ScadaLink.Host.Tests.csproj
index 0021a99e..68951e71 100644
--- a/tests/ScadaLink.Host.Tests/ScadaLink.Host.Tests.csproj
+++ b/tests/ScadaLink.Host.Tests/ScadaLink.Host.Tests.csproj
@@ -13,14 +13,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/tests/ScadaLink.InboundAPI.Tests/ScadaLink.InboundAPI.Tests.csproj b/tests/ScadaLink.InboundAPI.Tests/ScadaLink.InboundAPI.Tests.csproj
index 760425b2..0ab51470 100644
--- a/tests/ScadaLink.InboundAPI.Tests/ScadaLink.InboundAPI.Tests.csproj
+++ b/tests/ScadaLink.InboundAPI.Tests/ScadaLink.InboundAPI.Tests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/ScadaLink.IntegrationTests/ScadaLink.IntegrationTests.csproj b/tests/ScadaLink.IntegrationTests/ScadaLink.IntegrationTests.csproj
index 3938a711..ebab4396 100644
--- a/tests/ScadaLink.IntegrationTests/ScadaLink.IntegrationTests.csproj
+++ b/tests/ScadaLink.IntegrationTests/ScadaLink.IntegrationTests.csproj
@@ -13,14 +13,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/tests/ScadaLink.ManagementService.Tests/ScadaLink.ManagementService.Tests.csproj b/tests/ScadaLink.ManagementService.Tests/ScadaLink.ManagementService.Tests.csproj
index 62d292e7..1df5a3ce 100644
--- a/tests/ScadaLink.ManagementService.Tests/ScadaLink.ManagementService.Tests.csproj
+++ b/tests/ScadaLink.ManagementService.Tests/ScadaLink.ManagementService.Tests.csproj
@@ -7,12 +7,12 @@
false
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/tests/ScadaLink.NotificationService.Tests/ScadaLink.NotificationService.Tests.csproj b/tests/ScadaLink.NotificationService.Tests/ScadaLink.NotificationService.Tests.csproj
index 68fc215e..58132bde 100644
--- a/tests/ScadaLink.NotificationService.Tests/ScadaLink.NotificationService.Tests.csproj
+++ b/tests/ScadaLink.NotificationService.Tests/ScadaLink.NotificationService.Tests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/ScadaLink.PerformanceTests/ScadaLink.PerformanceTests.csproj b/tests/ScadaLink.PerformanceTests/ScadaLink.PerformanceTests.csproj
index 86f24e5b..fb6592c2 100644
--- a/tests/ScadaLink.PerformanceTests/ScadaLink.PerformanceTests.csproj
+++ b/tests/ScadaLink.PerformanceTests/ScadaLink.PerformanceTests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/ScadaLink.Security.Tests/ScadaLink.Security.Tests.csproj b/tests/ScadaLink.Security.Tests/ScadaLink.Security.Tests.csproj
index 65623a3d..3290ac6d 100644
--- a/tests/ScadaLink.Security.Tests/ScadaLink.Security.Tests.csproj
+++ b/tests/ScadaLink.Security.Tests/ScadaLink.Security.Tests.csproj
@@ -9,16 +9,16 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/ScadaLink.SiteEventLogging.Tests/ScadaLink.SiteEventLogging.Tests.csproj b/tests/ScadaLink.SiteEventLogging.Tests/ScadaLink.SiteEventLogging.Tests.csproj
index 9c20af02..e3d61406 100644
--- a/tests/ScadaLink.SiteEventLogging.Tests/ScadaLink.SiteEventLogging.Tests.csproj
+++ b/tests/ScadaLink.SiteEventLogging.Tests/ScadaLink.SiteEventLogging.Tests.csproj
@@ -9,13 +9,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/tests/ScadaLink.SiteRuntime.Tests/ScadaLink.SiteRuntime.Tests.csproj b/tests/ScadaLink.SiteRuntime.Tests/ScadaLink.SiteRuntime.Tests.csproj
index d70ec1b5..1bc09f8b 100644
--- a/tests/ScadaLink.SiteRuntime.Tests/ScadaLink.SiteRuntime.Tests.csproj
+++ b/tests/ScadaLink.SiteRuntime.Tests/ScadaLink.SiteRuntime.Tests.csproj
@@ -9,14 +9,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/tests/ScadaLink.StoreAndForward.Tests/ScadaLink.StoreAndForward.Tests.csproj b/tests/ScadaLink.StoreAndForward.Tests/ScadaLink.StoreAndForward.Tests.csproj
index cd6f7d2f..3c3675f1 100644
--- a/tests/ScadaLink.StoreAndForward.Tests/ScadaLink.StoreAndForward.Tests.csproj
+++ b/tests/ScadaLink.StoreAndForward.Tests/ScadaLink.StoreAndForward.Tests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/tests/ScadaLink.TemplateEngine.Tests/ScadaLink.TemplateEngine.Tests.csproj b/tests/ScadaLink.TemplateEngine.Tests/ScadaLink.TemplateEngine.Tests.csproj
index 5d24a347..f3399b1d 100644
--- a/tests/ScadaLink.TemplateEngine.Tests/ScadaLink.TemplateEngine.Tests.csproj
+++ b/tests/ScadaLink.TemplateEngine.Tests/ScadaLink.TemplateEngine.Tests.csproj
@@ -9,11 +9,11 @@
-
-
-
-
-
+
+
+
+
+