Registry improved
BaSyx CLI project added
diff --git a/sdks/dotnet/basyx-components/BaSyx.CLI/Options/RefineOptions.cs b/sdks/dotnet/basyx-components/BaSyx.CLI/Options/RefineOptions.cs
new file mode 100644
index 0000000..923d942
--- /dev/null
+++ b/sdks/dotnet/basyx-components/BaSyx.CLI/Options/RefineOptions.cs
@@ -0,0 +1,113 @@
+using BaSyx.Models.Core.AssetAdministrationShell.Identification;
+using BaSyx.Models.Export;
+using BaSyx.Utils.PathHandling;
+using CommandLine;
+using NLog;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Packaging;
+using System.Linq;
+
+namespace BaSyx.CLI.Options
+{
+    [Verb("refine", HelpText = "Refine Asset Adminstration Shell XML and JSON serialization according to schema")]
+    class RefineOptions
+    {
+        [Option('i', Required = true, HelpText = "Input file (e.g. .aasx, .xml, .json)")]
+        public string InputFileName { get; set; }
+
+        [Option('o', Required = true, HelpText = "Output file (e.g. .aasx, .xml, .json)")]
+        public string OutputFileName { get; set; }
+
+        [Option('v', Required = false, HelpText = "Re-Validate at the end")]
+        public bool Revalidate { get; set; }
+
+        private static readonly Logger logger = LogManager.GetCurrentClassLogger();
+
+        public static int RunRefineAndReturnExitCode(RefineOptions opts)
+        {
+            string fileExtension = Path.GetExtension(opts.InputFileName);
+            switch (fileExtension)
+            {
+                case ".aasx":
+                    {
+                        try
+                        {
+                            string tempEnvironmentFile = Path.GetTempFileName() + ".xml";
+                            DirectoryInfo tempDirInfo = Directory.CreateDirectory("tempSupplementaryFiles");
+                            Dictionary<Uri, string> files = new Dictionary<Uri, string>();
+                            Identifier aasIdentifier = null;
+                            FileInfo thumbnail = null;
+
+                            using (AASX aasx = new AASX(opts.InputFileName))
+                            {
+                                AssetAdministrationShellEnvironment_V2_0 env = aasx.GetEnvironment_V2_0();
+
+                                aasIdentifier = env.AssetAdministrationShells.First().Identification;
+                                env.WriteEnvironment_V2_0(ExportType.Xml, tempEnvironmentFile);
+
+                                foreach (var file in aasx.SupplementaryFiles)
+                                {
+                                    using (Stream stream = file.GetStream(FileMode.Open, FileAccess.Read))
+                                    {
+                                        string[] splitted = file.Uri.ToString().Split(new char[] { '/' });
+                                        string fileName = splitted[splitted.Length - 1];
+                                        string filePath = Path.Combine(tempDirInfo.FullName, fileName);
+
+                                        using (FileStream dest = File.Open(filePath, FileMode.OpenOrCreate))
+                                            stream.CopyTo(dest);
+
+                                        files.Add(file.Uri, filePath);
+                                    }
+                                }
+                                PackagePart thumbnailPackagePart = aasx.GetThumbnailAsPackagePart();
+                                if (thumbnailPackagePart != null)
+                                {
+                                    string thumbnailFilePath = tempDirInfo.FullName + thumbnailPackagePart.Uri.ToString();
+                                    thumbnail = thumbnailPackagePart.GetStream(FileMode.Open, FileAccess.Read).ToFile(thumbnailFilePath);
+                                }
+                            }
+
+                            using (AASX aasx_new = new AASX(opts.OutputFileName))
+                            {
+                                aasx_new.AddEnvironment(aasIdentifier, tempEnvironmentFile);
+                                foreach (var file in files)
+                                {
+                                    aasx_new.AddFileToAASX(file.Key.ToString(), file.Value);
+                                }
+                                if (thumbnail != null)
+                                    aasx_new.AddThumbnail(thumbnail.FullName);
+                            }
+
+                            if (opts.Revalidate)
+                            {
+                                logger.Info($"Validate {opts.OutputFileName}...");
+                                using (AASX aasx_new = new AASX(opts.OutputFileName))
+                                {
+                                    AssetAdministrationShellEnvironment_V2_0 env = aasx_new.GetEnvironment_V2_0();
+                                }
+                            }
+                            //Clear all temporary ressources
+                            Directory.Delete(tempDirInfo.FullName, true);
+                            File.Delete(tempEnvironmentFile);
+                            if (thumbnail != null)
+                                File.Delete(thumbnail.FullName);
+
+                            return 0;
+                        }
+                        catch (Exception e)
+                        {
+                            logger.Error(e, e.Message);
+                            return -1;
+                        }
+                    }
+                default:
+                    logger.Error($"Unable to parse file extension ${fileExtension}");
+                    return -1;
+            }
+        }
+    }
+
+    
+}
diff --git a/sdks/dotnet/basyx-components/BaSyx.CLI/Program.cs b/sdks/dotnet/basyx-components/BaSyx.CLI/Program.cs
index da1e7a0..81087a2 100644
--- a/sdks/dotnet/basyx-components/BaSyx.CLI/Program.cs
+++ b/sdks/dotnet/basyx-components/BaSyx.CLI/Program.cs
@@ -1,15 +1,7 @@
-using BaSyx.Models.Core.AssetAdministrationShell.Generics;
-using BaSyx.Models.Core.AssetAdministrationShell.Identification;
-using BaSyx.Models.Core.Common;
-using BaSyx.Models.Export;
-using BaSyx.Utils.PathHandling;
+using BaSyx.CLI.Options;
 using CommandLine;
 using NLog;
-using System;
 using System.Collections.Generic;
-using System.IO;
-using System.IO.Packaging;
-using System.Linq;
 
 namespace BaSyx.CLI
 {
@@ -17,18 +9,6 @@
     {
         private static readonly Logger logger = LogManager.GetCurrentClassLogger();
 
-        [Verb("refine", HelpText = "Refine Asset Adminstration Shell XML and JSON serialization according to schema")]
-        class RefineOptions
-        {
-            [Option('i', Required = true, HelpText = "Input file (e.g. .aasx, .xml, .json)")]
-            public string InputFileName { get; set; }
-
-            [Option('o', Required = true, HelpText = "Output file (e.g. .aasx, .xml, .json)")]
-            public string OutputFileName { get; set; }
-
-            [Option('v', Required = false, HelpText = "Re-Validate at the end")]
-            public bool Revalidate { get; set; }
-        }
 
         static int Main(string[] args)
         {
@@ -36,96 +16,10 @@
 
             return Parser.Default.ParseArguments<RefineOptions>(args)
                     .MapResult(
-                      (RefineOptions opts) => RunRefineAndReturnExitCode(opts),
+                      (RefineOptions opts) => RefineOptions.RunRefineAndReturnExitCode(opts), 
                       HandleParseError);
         }
-        static int RunRefineAndReturnExitCode(RefineOptions opts)
-        {
-            string fileExtension = Path.GetExtension(opts.InputFileName);
-            switch (fileExtension)
-            {
-                case ".aasx":
-                    {
-                        try
-                        {
-                            string tempEnvironmentFile = Path.GetTempFileName() + ".xml";
-                            DirectoryInfo tempDirInfo = Directory.CreateDirectory("tempSupplementaryFiles");
-                            Dictionary<Uri, string> files = new Dictionary<Uri, string>();
-                            Identifier aasIdentifier = null;
-                            FileInfo thumbnail = null;
 
-                            using (AASX aasx = new AASX(opts.InputFileName))
-                            {
-                                AssetAdministrationShellEnvironment_V2_0 env = aasx.GetEnvironment_V2_0();                          
-
-                                aasIdentifier = env.AssetAdministrationShells.First().Identification;
-                                env.WriteEnvironment_V2_0(ExportType.Xml, tempEnvironmentFile);
-
-                                foreach (var file in aasx.SupplementaryFiles)
-                                {
-                                    using (Stream stream = file.GetStream(FileMode.Open, FileAccess.Read))
-                                    {
-                                        string[] splitted = file.Uri.ToString().Split(new char[] { '/' });
-                                        string fileName = splitted[splitted.Length - 1];
-                                        string filePath = Path.Combine(tempDirInfo.FullName, fileName);
-
-                                        using (FileStream dest = File.Open(filePath, FileMode.OpenOrCreate))
-                                            stream.CopyTo(dest);
-
-                                        files.Add(file.Uri, filePath);
-                                    }
-                                }
-                                PackagePart thumbnailPackagePart = aasx.GetThumbnailAsPackagePart();
-                                if (thumbnailPackagePart != null)
-                                {
-                                    string thumbnailFilePath = tempDirInfo.FullName + thumbnailPackagePart.Uri.ToString();
-                                    thumbnail = thumbnailPackagePart.GetStream(FileMode.Open, FileAccess.Read).ToFile(thumbnailFilePath);
-                                }
-                            }
-                            
-                            using (AASX aasx_new = new AASX(opts.OutputFileName))
-                            {
-                                aasx_new.AddEnvironment(aasIdentifier, tempEnvironmentFile);
-                                foreach (var file in files)
-                                {
-                                    aasx_new.AddFileToAASX(file.Key.ToString(), file.Value);
-                                }
-                                if(thumbnail != null)
-                                    aasx_new.AddThumbnail(thumbnail.FullName);                                
-                            }
-
-                            if(opts.Revalidate)
-                            {
-                                logger.Info($"Validate {opts.OutputFileName}...");
-                                using (AASX aasx_new = new AASX(opts.OutputFileName))
-                                {
-                                    AssetAdministrationShellEnvironment_V2_0 env = aasx_new.GetEnvironment_V2_0();
-                                }
-                            }
-                            //Clear all temporary ressources
-                            Directory.Delete(tempDirInfo.FullName, true);
-                            File.Delete(tempEnvironmentFile);
-                            if(thumbnail != null)
-                                File.Delete(thumbnail.FullName);
-
-                            return 0;
-                        }
-                        catch (Exception e)
-                        {
-                            logger.Error(e, e.Message);
-                            return -1;
-                        }
-                    }
-                default:
-                    logger.Error($"Unable to parse file extension ${fileExtension}");
-                    return -1;
-            }
-        }        
-
-        static int HandleParseError(IEnumerable<Error> errs)
-        {
-            return -1;
-        }
-
+        static int HandleParseError(IEnumerable<Error> errs) => -1;
     }
 }
diff --git a/sdks/dotnet/basyx-components/BaSyx.Components.Common/ServerApplication.cs b/sdks/dotnet/basyx-components/BaSyx.Components.Common/ServerApplication.cs
index 055b975..deae290 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Components.Common/ServerApplication.cs
+++ b/sdks/dotnet/basyx-components/BaSyx.Components.Common/ServerApplication.cs
@@ -133,8 +133,30 @@
                     var mvcBuilder = services.AddMvc();
                     foreach (var controllerAssemblyName in controllerConfig.Controllers)
                     {
-                        Assembly controllerAssembly = Assembly.Load(controllerAssemblyName);
-                        mvcBuilder.AddApplicationPart(controllerAssembly);
+                        Assembly controllerAssembly = null;
+                        try
+                        {
+                            controllerAssembly = Assembly.Load(controllerAssemblyName);
+                        }
+                        catch (Exception e)
+                        {
+                            logger.Warn(e, $"Assembly {controllerAssemblyName} cannot be loaded - maybe it is not referenced. Try reading from file...");
+                            try
+                            {
+                                if (File.Exists(controllerAssemblyName))
+                                    controllerAssembly = Assembly.LoadFile(controllerAssemblyName);
+                                else if (File.Exists(controllerAssemblyName + ".dll"))
+                                    controllerAssembly = Assembly.LoadFile(controllerAssemblyName + ".dll");
+                                else
+                                    controllerAssembly = Assembly.LoadFrom(controllerAssemblyName);
+                            }
+                            catch (Exception exp)
+                            {
+                                logger.Warn(exp, $"Assembly {controllerAssemblyName} can finally not be loaded");
+                            }                            
+                        }
+                        if(controllerAssembly != null)
+                            mvcBuilder.AddApplicationPart(controllerAssembly);
                     }
                     mvcBuilder.AddControllersAsServices();
                 }
diff --git a/sdks/dotnet/basyx-components/BaSyx.Components.sln b/sdks/dotnet/basyx-components/BaSyx.Components.sln
index 29ae2b0..2d36cd9 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Components.sln
+++ b/sdks/dotnet/basyx-components/BaSyx.Components.sln
@@ -37,7 +37,9 @@
 EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{EB38D1D3-2539-4EA3-9FA9-B91487278FC2}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BaSyx.Components.Tests", "BaSyx.Components.Tests\BaSyx.Components.Tests.csproj", "{A925E735-99D9-44F8-A7BE-36836D7CC1C2}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BaSyx.Components.Tests", "BaSyx.Components.Tests\BaSyx.Components.Tests.csproj", "{A925E735-99D9-44F8-A7BE-36836D7CC1C2}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BaSyx.CLI", "BaSyx.CLI\BaSyx.CLI.csproj", "{E61A0596-326A-4967-8CA4-FE31A0321603}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -93,6 +95,10 @@
 		{A925E735-99D9-44F8-A7BE-36836D7CC1C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{A925E735-99D9-44F8-A7BE-36836D7CC1C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{A925E735-99D9-44F8-A7BE-36836D7CC1C2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E61A0596-326A-4967-8CA4-FE31A0321603}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E61A0596-326A-4967-8CA4-FE31A0321603}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E61A0596-326A-4967-8CA4-FE31A0321603}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E61A0596-326A-4967-8CA4-FE31A0321603}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -110,6 +116,7 @@
 		{D8A737D1-4275-4DB2-9C1F-0C942C71E0B0} = {12CD4BF1-B0A6-4DBD-AFB6-6F232C92AAFA}
 		{CACC3BFB-04DF-4E46-BBBD-2A5DA27D957D} = {D3E29E3D-ECAC-4F1E-A3F7-7236ED32A4C4}
 		{A925E735-99D9-44F8-A7BE-36836D7CC1C2} = {EB38D1D3-2539-4EA3-9FA9-B91487278FC2}
+		{E61A0596-326A-4967-8CA4-FE31A0321603} = {12CD4BF1-B0A6-4DBD-AFB6-6F232C92AAFA}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {8DC440E9-3A4D-4D67-B741-72B8F15EB8C7}
diff --git a/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/Discovery.cs b/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/Discovery.cs
new file mode 100644
index 0000000..a89553c
--- /dev/null
+++ b/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/Discovery.cs
@@ -0,0 +1,55 @@
+using BaSyx.AAS.Client.Http;
+using BaSyx.Utils.Network;
+using System;
+using System.Threading.Tasks;
+
+namespace BaSyx.Discovery.mDNS
+{
+    public static class Discovery
+    {
+        /// <summary>
+        /// Returns an AssetAdministrationShell-Http-Client if found via mDNS Discovery
+        /// </summary>
+        /// <param name="aasId">The Asset Administration Shell's unique id to look for</param>
+        /// <param name="timeout">Timeout in ms until it stops looking</param>
+        /// <returns></returns>
+        public static async Task<AssetAdministrationShellHttpClient> GetHttpClientByShellIdAsync(string aasId, int timeout)
+        {
+            AssetAdministrationShellHttpClient client = null;
+            DiscoveryServer discoveryServer = new DiscoveryServer(ServiceTypes.AAS_SERVICE_TYPE);
+
+            EventHandler<ServiceInstanceEventArgs> eventHandler = async(sender, e) =>
+            {
+                var found = e.TxtRecords.Find(f => f.Contains(aasId));
+                if (found != null)
+                    foreach (var server in e.Servers)
+                    {
+                        bool pingable = await NetworkUtils.PingHostAsync(server.Address.ToString());
+                        if (pingable)
+                        {
+                            var endpointRecord = e.TxtRecords.Find(f => f.Contains(server.Address.ToString()));
+                            if (endpointRecord.Contains("="))
+                            {
+                                string[] splitted = endpointRecord.Split(new char[] { '=' }, StringSplitOptions.None);
+                                Uri endpoint = new Uri(splitted[1]);
+                                client = new AssetAdministrationShellHttpClient(endpoint);
+                            }
+                        }
+                    }
+            };
+
+            discoveryServer.ServiceInstanceDiscovered += eventHandler;
+            discoveryServer.Start();
+
+            Task timeoutTask = Task.Delay(timeout);
+
+            while (client == null && !timeoutTask.IsCompleted)
+                await Task.Delay(100);
+
+            discoveryServer.ServiceInstanceDiscovered -= eventHandler;
+            discoveryServer.Stop();
+            
+            return client;
+        }        
+    }
+}
diff --git a/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/DiscoveryExtensions.cs b/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/DiscoveryExtensions.cs
index de7426d..39c9d95 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/DiscoveryExtensions.cs
+++ b/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/DiscoveryExtensions.cs
@@ -175,6 +175,8 @@
 
         public static void StopDiscovery(this IAssetAdministrationShellRegistry registryHttpServer)
         {
+            discoveryServer.ServiceInstanceDiscovered -= DiscoveryServer_ServiceInstanceDiscovered;
+            discoveryServer.ServiceInstanceShutdown -= DiscoveryServer_ServiceInstanceShutdown;
             discoveryServer.Stop();
         }
 
diff --git a/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/DiscoveryServer.cs b/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/DiscoveryServer.cs
index 4570a9a..cb6f87f 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/DiscoveryServer.cs
+++ b/sdks/dotnet/basyx-components/BaSyx.Discovery.mDNS/DiscoveryServer.cs
@@ -149,7 +149,7 @@
         {
             logger.Info("Discover thread stopping...");
             cancellationToken?.Cancel();
-            bool success = discoverThread.Join(5000);
+            bool success = discoverThread.Join(DISCOVER_THREAD_DELAY + 500);
             logger.Info("Discover thread stopped successfully:" + success);
         }
     }
diff --git a/sdks/dotnet/basyx-components/BaSyx.Registry.Server.Http.Component/BaSyx.Registry.Server.Http.Component.csproj b/sdks/dotnet/basyx-components/BaSyx.Registry.Server.Http.Component/BaSyx.Registry.Server.Http.Component.csproj
index c550464..6aaab96 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Registry.Server.Http.Component/BaSyx.Registry.Server.Http.Component.csproj
+++ b/sdks/dotnet/basyx-components/BaSyx.Registry.Server.Http.Component/BaSyx.Registry.Server.Http.Component.csproj
@@ -26,6 +26,10 @@
   </ItemGroup>
 
   <ItemGroup>
+    <PackageReference Include="CommandLineParser" Version="2.8.0" />
+  </ItemGroup>
+
+  <ItemGroup>
     <ProjectReference Include="..\BaSyx.Discovery.mDNS\BaSyx.Discovery.mDNS.csproj" />
     <ProjectReference Include="..\BaSyx.Registry.ReferenceImpl.FileBased\BaSyx.Registry.ReferenceImpl.FileBased.csproj" />
     <ProjectReference Include="..\BaSyx.Registry.Server.Http\BaSyx.Registry.Server.Http.csproj" />
diff --git a/sdks/dotnet/basyx-components/BaSyx.Registry.Server.Http.Component/Program.cs b/sdks/dotnet/basyx-components/BaSyx.Registry.Server.Http.Component/Program.cs
index 1bd9714..ce26e8a 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Registry.Server.Http.Component/Program.cs
+++ b/sdks/dotnet/basyx-components/BaSyx.Registry.Server.Http.Component/Program.cs
@@ -11,18 +11,77 @@
 using BaSyx.Registry.ReferenceImpl.FileBased;
 using BaSyx.Discovery.mDNS;
 using BaSyx.Utils.Settings.Types;
+using CommandLine;
+using NLog;
+using System;
+using System.Linq;
+using System.Collections.Generic;
 
 namespace BaSyx.Registry.Server.Http.Component
 {
     class Program
     {
+        private static readonly Logger logger = LogManager.GetCurrentClassLogger();
+
+        public class ServerOptions
+        {
+            [Option('s', "settings", Required = false, HelpText = "Path to the ServerSettings.xml")]
+            public string SettingsFilePath { get; set; }
+
+            [Option('u', "urls", Required = false, HelpText = "Hosting Urls (semicolon separated), e.g. http://+:4999")]
+            public string Urls { get; set; }
+        }
+
         static void Main(string[] args)
         {
-            ServerSettings registrySettings = ServerSettings.LoadSettings();
-            RegistryHttpServer registryServer = new RegistryHttpServer(registrySettings);
-            FileBasedRegistry fileBasedRegistry = new FileBasedRegistry();
-            fileBasedRegistry.StartDiscovery();
+            ServerSettings serverSettings = null;
+
+            //Parse command line arguments based on the options above
+            Parser.Default.ParseArguments<ServerOptions>(args)
+                   .WithParsed<ServerOptions>(o =>
+                   {
+                       if (!string.IsNullOrEmpty(o.SettingsFilePath))
+                           serverSettings = ServerSettings.LoadSettingsFromFile(o.SettingsFilePath);
+                       else
+                           serverSettings = ServerSettings.LoadSettings();
+
+                       if(!string.IsNullOrEmpty(o.Urls))
+                       {
+                           if (o.Urls.Contains(";"))
+                           {
+                               string[] splittedUrls = o.Urls.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
+                               serverSettings.ServerConfig.Hosting.Urls = splittedUrls.ToList();
+                           }
+                           else
+                               serverSettings.ServerConfig.Hosting.Urls = new List<string>() { o.Urls };
+                       }
+                   });
+
+            if(args.Contains("--help") || args.Contains("--version"))
+                return;
+
+            //Instantiate blank Registry-Http-Server with previously loaded server settings
+            RegistryHttpServer registryServer = new RegistryHttpServer(serverSettings);
+
+            //Instantiate implementation backend for the Registry
+            FileBasedRegistry fileBasedRegistry = new FileBasedRegistry();                       
+
+            //Assign implemenation backend to blank Registry-Http-Server
             registryServer.SetRegistryProvider(fileBasedRegistry);
+
+            //Start mDNS Discovery ability when the server successfully booted up
+            registryServer.ApplicationStarted = () =>
+            {
+                fileBasedRegistry.StartDiscovery();
+            };
+
+            //Start mDNS Discovery when the server is shutting down
+            registryServer.ApplicationStopping = () =>
+            {
+                fileBasedRegistry.StopDiscovery();
+            };
+
+            //Run the server
             registryServer.Run();
         }
     }
diff --git a/sdks/dotnet/basyx-packages/BaSyx.AAS.Server.Http.1.0.0.nupkg b/sdks/dotnet/basyx-packages/BaSyx.AAS.Server.Http.1.0.0.nupkg
index f8ac636..ef68b70 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.AAS.Server.Http.1.0.0.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.AAS.Server.Http.1.0.0.nupkg
Binary files differ
diff --git a/sdks/dotnet/basyx-packages/BaSyx.AAS.Server.Http.1.0.0.symbols.nupkg b/sdks/dotnet/basyx-packages/BaSyx.AAS.Server.Http.1.0.0.symbols.nupkg
index 6c7ac5f..11e1b21 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.AAS.Server.Http.1.0.0.symbols.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.AAS.Server.Http.1.0.0.symbols.nupkg
Binary files differ
diff --git a/sdks/dotnet/basyx-packages/BaSyx.Components.Common.1.0.0.nupkg b/sdks/dotnet/basyx-packages/BaSyx.Components.Common.1.0.0.nupkg
index 5821dda..c5cc7db 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.Components.Common.1.0.0.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.Components.Common.1.0.0.nupkg
Binary files differ
diff --git a/sdks/dotnet/basyx-packages/BaSyx.Components.Common.1.0.0.symbols.nupkg b/sdks/dotnet/basyx-packages/BaSyx.Components.Common.1.0.0.symbols.nupkg
index d0b6bd5..a03d234 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.Components.Common.1.0.0.symbols.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.Components.Common.1.0.0.symbols.nupkg
Binary files differ
diff --git a/sdks/dotnet/basyx-packages/BaSyx.Discovery.mDNS.1.0.0.nupkg b/sdks/dotnet/basyx-packages/BaSyx.Discovery.mDNS.1.0.0.nupkg
index e935a98..6817deb 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.Discovery.mDNS.1.0.0.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.Discovery.mDNS.1.0.0.nupkg
Binary files differ
diff --git a/sdks/dotnet/basyx-packages/BaSyx.Discovery.mDNS.1.0.0.symbols.nupkg b/sdks/dotnet/basyx-packages/BaSyx.Discovery.mDNS.1.0.0.symbols.nupkg
index 23315a2..06ef4c8 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.Discovery.mDNS.1.0.0.symbols.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.Discovery.mDNS.1.0.0.symbols.nupkg
Binary files differ
diff --git a/sdks/dotnet/basyx-packages/BaSyx.Registry.Server.Http.1.0.0.nupkg b/sdks/dotnet/basyx-packages/BaSyx.Registry.Server.Http.1.0.0.nupkg
index a83cae0..ce2598d 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.Registry.Server.Http.1.0.0.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.Registry.Server.Http.1.0.0.nupkg
Binary files differ
diff --git a/sdks/dotnet/basyx-packages/BaSyx.Registry.Server.Http.1.0.0.symbols.nupkg b/sdks/dotnet/basyx-packages/BaSyx.Registry.Server.Http.1.0.0.symbols.nupkg
index 0603504..a5a824e 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.Registry.Server.Http.1.0.0.symbols.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.Registry.Server.Http.1.0.0.symbols.nupkg
Binary files differ
diff --git a/sdks/dotnet/basyx-packages/BaSyx.Submodel.Server.Http.1.0.0.nupkg b/sdks/dotnet/basyx-packages/BaSyx.Submodel.Server.Http.1.0.0.nupkg
index 6cb7c8b..790a22f 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.Submodel.Server.Http.1.0.0.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.Submodel.Server.Http.1.0.0.nupkg
Binary files differ
diff --git a/sdks/dotnet/basyx-packages/BaSyx.Submodel.Server.Http.1.0.0.symbols.nupkg b/sdks/dotnet/basyx-packages/BaSyx.Submodel.Server.Http.1.0.0.symbols.nupkg
index 719baad..c606dcb 100644
--- a/sdks/dotnet/basyx-packages/BaSyx.Submodel.Server.Http.1.0.0.symbols.nupkg
+++ b/sdks/dotnet/basyx-packages/BaSyx.Submodel.Server.Http.1.0.0.symbols.nupkg
Binary files differ