diff --git a/ScadaLink.slnx b/ScadaLink.slnx
index 3a70a13..0f72605 100644
--- a/ScadaLink.slnx
+++ b/ScadaLink.slnx
@@ -22,6 +22,7 @@
+
@@ -48,5 +49,7 @@
+
+
diff --git a/src/ScadaLink.Transport/ScadaLink.Transport.csproj b/src/ScadaLink.Transport/ScadaLink.Transport.csproj
new file mode 100644
index 0000000..2aa3116
--- /dev/null
+++ b/src/ScadaLink.Transport/ScadaLink.Transport.csproj
@@ -0,0 +1,21 @@
+
+
+
+ net10.0
+ enable
+ enable
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/ScadaLink.Transport/ServiceCollectionExtensions.cs b/src/ScadaLink.Transport/ServiceCollectionExtensions.cs
new file mode 100644
index 0000000..8497f48
--- /dev/null
+++ b/src/ScadaLink.Transport/ServiceCollectionExtensions.cs
@@ -0,0 +1,15 @@
+using Microsoft.Extensions.DependencyInjection;
+
+namespace ScadaLink.Transport;
+
+public static class ServiceCollectionExtensions
+{
+ public const string OptionsSection = "ScadaLink:Transport";
+
+ public static IServiceCollection AddTransport(this IServiceCollection services)
+ {
+ ArgumentNullException.ThrowIfNull(services);
+ // Concrete services and options binding added in later tasks.
+ return services;
+ }
+}
diff --git a/tests/ScadaLink.Transport.IntegrationTests/ScadaLink.Transport.IntegrationTests.csproj b/tests/ScadaLink.Transport.IntegrationTests/ScadaLink.Transport.IntegrationTests.csproj
new file mode 100644
index 0000000..16cc072
--- /dev/null
+++ b/tests/ScadaLink.Transport.IntegrationTests/ScadaLink.Transport.IntegrationTests.csproj
@@ -0,0 +1,36 @@
+
+
+
+ net10.0
+ enable
+ enable
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/ScadaLink.Transport.Tests/ScadaLink.Transport.Tests.csproj b/tests/ScadaLink.Transport.Tests/ScadaLink.Transport.Tests.csproj
new file mode 100644
index 0000000..328d650
--- /dev/null
+++ b/tests/ScadaLink.Transport.Tests/ScadaLink.Transport.Tests.csproj
@@ -0,0 +1,31 @@
+
+
+
+ net10.0
+ enable
+ enable
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+