diff --git a/Client.Tests/Client.Tests.csproj b/Client.Tests/Client.Tests.csproj index 5e6d2903..ccaf0a88 100644 --- a/Client.Tests/Client.Tests.csproj +++ b/Client.Tests/Client.Tests.csproj @@ -46,7 +46,9 @@ - + + False + @@ -56,6 +58,7 @@ + diff --git a/Client.Tests/Core/Packet/Packet.Tests.cs b/Client.Tests/Core/Packet/Packet.Tests.cs new file mode 100644 index 00000000..9a167645 --- /dev/null +++ b/Client.Tests/Core/Packet/Packet.Tests.cs @@ -0,0 +1,21 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Reflection; +using System.Linq; +using xClient.Core.Packets; + +namespace xClient.Tests.Core.Packet +{ + [TestClass] + public class PacketTest + { + [TestMethod] + public void AreAllPacketsRegistered() + { + var asm = Assembly.Load("Client"); + var expectedPacketTypes = asm.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IPacket)) && t.GetCustomAttributes(typeof(SerializableAttribute), false).Any()).ToArray(); + var registeredPackets = PacketRegistery.GetPacketTypes(); + CollectionAssert.AreEquivalent(expectedPacketTypes, registeredPackets); + } + } +} diff --git a/Client/Client.csproj b/Client/Client.csproj index 8d9b31d9..61cf5eb1 100644 --- a/Client/Client.csproj +++ b/Client/Client.csproj @@ -143,6 +143,7 @@ + diff --git a/Client/Core/Networking/QuasarClient.cs b/Client/Core/Networking/QuasarClient.cs index e5ee16fd..849cd481 100644 --- a/Client/Core/Networking/QuasarClient.cs +++ b/Client/Core/Networking/QuasarClient.cs @@ -24,86 +24,7 @@ namespace xClient.Core.Networking { this._hosts = hostsManager; - base.Serializer = new Serializer(new Type[] - { - typeof (Packets.ServerPackets.GetAuthentication), - typeof (Packets.ServerPackets.DoClientDisconnect), - typeof (Packets.ServerPackets.DoClientReconnect), - typeof (Packets.ServerPackets.DoClientUninstall), - typeof (Packets.ServerPackets.DoWebcamStop), - typeof (Packets.ServerPackets.DoAskElevate), - typeof (Packets.ServerPackets.DoDownloadAndExecute), - typeof (Packets.ServerPackets.DoUploadAndExecute), - typeof (Packets.ServerPackets.GetDesktop), - typeof (Packets.ServerPackets.GetProcesses), - typeof (Packets.ServerPackets.DoProcessKill), - typeof (Packets.ServerPackets.DoProcessStart), - typeof (Packets.ServerPackets.GetDrives), - typeof (Packets.ServerPackets.GetDirectory), - typeof (Packets.ServerPackets.DoDownloadFile), - typeof (Packets.ServerPackets.DoMouseEvent), - typeof (Packets.ServerPackets.DoKeyboardEvent), - typeof (Packets.ServerPackets.GetSystemInfo), - typeof (Packets.ServerPackets.DoVisitWebsite), - typeof (Packets.ServerPackets.DoShowMessageBox), - typeof (Packets.ServerPackets.DoClientUpdate), - typeof (Packets.ServerPackets.GetMonitors), - typeof (Packets.ServerPackets.GetWebcams), - typeof (Packets.ServerPackets.GetWebcam), - typeof (Packets.ServerPackets.DoShellExecute), - typeof (Packets.ServerPackets.DoPathRename), - typeof (Packets.ServerPackets.DoPathDelete), - typeof (Packets.ServerPackets.DoShutdownAction), - typeof (Packets.ServerPackets.GetStartupItems), - typeof (Packets.ServerPackets.DoStartupItemAdd), - typeof (Packets.ServerPackets.DoStartupItemRemove), - typeof (Packets.ServerPackets.DoDownloadFileCancel), - typeof (Packets.ServerPackets.GetKeyloggerLogs), - typeof (Packets.ServerPackets.DoUploadFile), - typeof (Packets.ServerPackets.GetPasswords), - typeof (Packets.ServerPackets.DoLoadRegistryKey), - typeof (Packets.ServerPackets.DoCreateRegistryKey), - typeof (Packets.ServerPackets.DoDeleteRegistryKey), - typeof (Packets.ServerPackets.DoRenameRegistryKey), - typeof (Packets.ServerPackets.DoCreateRegistryValue), - typeof (Packets.ServerPackets.DoDeleteRegistryValue), - typeof (Packets.ServerPackets.DoRenameRegistryValue), - typeof (Packets.ServerPackets.DoChangeRegistryValue), - typeof (Packets.ServerPackets.SetAuthenticationSuccess), - typeof (Packets.ServerPackets.GetConnections), - typeof (Packets.ServerPackets.DoCloseConnection), - typeof (Packets.ClientPackets.GetAuthenticationResponse), - typeof (Packets.ClientPackets.SetStatus), - typeof (Packets.ClientPackets.SetStatusFileManager), - typeof (Packets.ClientPackets.SetUserStatus), - typeof (Packets.ClientPackets.GetDesktopResponse), - typeof (Packets.ClientPackets.GetProcessesResponse), - typeof (Packets.ClientPackets.GetDrivesResponse), - typeof (Packets.ClientPackets.GetDirectoryResponse), - typeof (Packets.ClientPackets.DoDownloadFileResponse), - typeof (Packets.ClientPackets.GetSystemInfoResponse), - typeof (Packets.ClientPackets.GetMonitorsResponse), - typeof (Packets.ClientPackets.GetWebcamsResponse), - typeof (Packets.ClientPackets.GetWebcamResponse), - typeof (Packets.ClientPackets.DoShellExecuteResponse), - typeof (Packets.ClientPackets.GetStartupItemsResponse), - typeof (Packets.ClientPackets.GetKeyloggerLogsResponse), - typeof (Packets.ClientPackets.GetPasswordsResponse), - typeof (Packets.ClientPackets.GetRegistryKeysResponse), - typeof (Packets.ClientPackets.GetCreateRegistryKeyResponse), - typeof (Packets.ClientPackets.GetDeleteRegistryKeyResponse), - typeof (Packets.ClientPackets.GetRenameRegistryKeyResponse), - typeof (Packets.ClientPackets.GetCreateRegistryValueResponse), - typeof (Packets.ClientPackets.GetDeleteRegistryValueResponse), - typeof (Packets.ClientPackets.GetRenameRegistryValueResponse), - typeof (Packets.ClientPackets.GetChangeRegistryValueResponse), - typeof (ReverseProxy.Packets.ReverseProxyConnect), - typeof (ReverseProxy.Packets.ReverseProxyConnectResponse), - typeof (ReverseProxy.Packets.ReverseProxyData), - typeof (ReverseProxy.Packets.ReverseProxyDisconnect), - typeof (Packets.ClientPackets.GetConnectionsResponse) - - }); + base.Serializer = new Serializer(PacketRegistery.GetPacketTypes()); base.ClientState += OnClientState; base.ClientRead += OnClientRead; base.ClientFail += OnClientFail; diff --git a/Client/Core/Packets/PacketRegistery.cs b/Client/Core/Packets/PacketRegistery.cs new file mode 100644 index 00000000..e5ed93f5 --- /dev/null +++ b/Client/Core/Packets/PacketRegistery.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace xClient.Core.Packets +{ + public class PacketRegistery + { + public static Type[] GetPacketTypes() + { + return new Type[] + { + typeof (Packets.ServerPackets.GetAuthentication), + typeof (Packets.ServerPackets.DoClientDisconnect), + typeof (Packets.ServerPackets.DoClientReconnect), + typeof (Packets.ServerPackets.DoClientUninstall), + typeof (Packets.ServerPackets.DoWebcamStop), + typeof (Packets.ServerPackets.DoAskElevate), + typeof (Packets.ServerPackets.DoDownloadAndExecute), + typeof (Packets.ServerPackets.DoUploadAndExecute), + typeof (Packets.ServerPackets.GetDesktop), + typeof (Packets.ServerPackets.GetProcesses), + typeof (Packets.ServerPackets.DoProcessKill), + typeof (Packets.ServerPackets.DoProcessStart), + typeof (Packets.ServerPackets.GetDrives), + typeof (Packets.ServerPackets.GetDirectory), + typeof (Packets.ServerPackets.DoDownloadFile), + typeof (Packets.ServerPackets.DoMouseEvent), + typeof (Packets.ServerPackets.DoKeyboardEvent), + typeof (Packets.ServerPackets.GetSystemInfo), + typeof (Packets.ServerPackets.DoVisitWebsite), + typeof (Packets.ServerPackets.DoShowMessageBox), + typeof (Packets.ServerPackets.DoClientUpdate), + typeof (Packets.ServerPackets.GetMonitors), + typeof (Packets.ServerPackets.GetWebcams), + typeof (Packets.ServerPackets.GetWebcam), + typeof (Packets.ServerPackets.DoShellExecute), + typeof (Packets.ServerPackets.DoPathRename), + typeof (Packets.ServerPackets.DoPathDelete), + typeof (Packets.ServerPackets.DoShutdownAction), + typeof (Packets.ServerPackets.GetStartupItems), + typeof (Packets.ServerPackets.DoStartupItemAdd), + typeof (Packets.ServerPackets.DoStartupItemRemove), + typeof (Packets.ServerPackets.DoDownloadFileCancel), + typeof (Packets.ServerPackets.GetKeyloggerLogs), + typeof (Packets.ServerPackets.DoUploadFile), + typeof (Packets.ServerPackets.GetPasswords), + typeof (Packets.ServerPackets.DoLoadRegistryKey), + typeof (Packets.ServerPackets.DoCreateRegistryKey), + typeof (Packets.ServerPackets.DoDeleteRegistryKey), + typeof (Packets.ServerPackets.DoRenameRegistryKey), + typeof (Packets.ServerPackets.DoCreateRegistryValue), + typeof (Packets.ServerPackets.DoDeleteRegistryValue), + typeof (Packets.ServerPackets.DoRenameRegistryValue), + typeof (Packets.ServerPackets.DoChangeRegistryValue), + typeof (Packets.ServerPackets.SetAuthenticationSuccess), + typeof (Packets.ServerPackets.GetConnections), + typeof (Packets.ServerPackets.DoCloseConnection), + typeof (Packets.ClientPackets.GetAuthenticationResponse), + typeof (Packets.ClientPackets.SetStatus), + typeof (Packets.ClientPackets.SetStatusFileManager), + typeof (Packets.ClientPackets.SetUserStatus), + typeof (Packets.ClientPackets.GetDesktopResponse), + typeof (Packets.ClientPackets.GetProcessesResponse), + typeof (Packets.ClientPackets.GetDrivesResponse), + typeof (Packets.ClientPackets.GetDirectoryResponse), + typeof (Packets.ClientPackets.DoDownloadFileResponse), + typeof (Packets.ClientPackets.GetSystemInfoResponse), + typeof (Packets.ClientPackets.GetMonitorsResponse), + typeof (Packets.ClientPackets.GetWebcamsResponse), + typeof (Packets.ClientPackets.GetWebcamResponse), + typeof (Packets.ClientPackets.DoShellExecuteResponse), + typeof (Packets.ClientPackets.GetStartupItemsResponse), + typeof (Packets.ClientPackets.GetKeyloggerLogsResponse), + typeof (Packets.ClientPackets.GetPasswordsResponse), + typeof (Packets.ClientPackets.GetRegistryKeysResponse), + typeof (Packets.ClientPackets.GetCreateRegistryKeyResponse), + typeof (Packets.ClientPackets.GetDeleteRegistryKeyResponse), + typeof (Packets.ClientPackets.GetRenameRegistryKeyResponse), + typeof (Packets.ClientPackets.GetCreateRegistryValueResponse), + typeof (Packets.ClientPackets.GetDeleteRegistryValueResponse), + typeof (Packets.ClientPackets.GetRenameRegistryValueResponse), + typeof (Packets.ClientPackets.GetChangeRegistryValueResponse), + typeof (ReverseProxy.Packets.ReverseProxyConnect), + typeof (ReverseProxy.Packets.ReverseProxyConnectResponse), + typeof (ReverseProxy.Packets.ReverseProxyData), + typeof (ReverseProxy.Packets.ReverseProxyDisconnect), + typeof (Packets.ClientPackets.GetConnectionsResponse) + + }; + } + } +} diff --git a/Server.Tests/Core/Packet/Packet.Tests.cs b/Server.Tests/Core/Packet/Packet.Tests.cs new file mode 100644 index 00000000..1ffb995f --- /dev/null +++ b/Server.Tests/Core/Packet/Packet.Tests.cs @@ -0,0 +1,21 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Reflection; +using System.Linq; +using xServer.Core.Packets; + +namespace xServer.Tests.Core.Packet +{ + [TestClass] + public class PacketTests + { + [TestMethod] + public void AreAllPacketsRegistered() + { + var asm = Assembly.Load("Quasar"); + var expectedPacketTypes = asm.GetTypes().Where(t => t.GetInterfaces().Contains(typeof(IPacket)) && t.GetCustomAttributes(typeof(SerializableAttribute), false).Any()).ToArray(); + var registeredPackets = PacketRegistery.GetPacketTypes(); + CollectionAssert.AreEquivalent(expectedPacketTypes, registeredPackets); + } + } +} diff --git a/Server.Tests/Server.Tests.csproj b/Server.Tests/Server.Tests.csproj index 4e29c94a..07fcb5ea 100644 --- a/Server.Tests/Server.Tests.csproj +++ b/Server.Tests/Server.Tests.csproj @@ -48,13 +48,16 @@ - + + False + + @@ -63,7 +66,6 @@ Server - diff --git a/Server/Core/Networking/QuasarServer.cs b/Server/Core/Networking/QuasarServer.cs index 3a677cf8..0ee5a79f 100644 --- a/Server/Core/Networking/QuasarServer.cs +++ b/Server/Core/Networking/QuasarServer.cs @@ -71,86 +71,7 @@ namespace xServer.Core.Networking /// public QuasarServer() : base() { - base.Serializer = new Serializer(new Type[] - { - typeof (Packets.ServerPackets.GetAuthentication), - typeof (Packets.ServerPackets.DoClientDisconnect), - typeof (Packets.ServerPackets.DoClientReconnect), - typeof (Packets.ServerPackets.DoClientUninstall), - typeof (Packets.ServerPackets.DoWebcamStop), - typeof (Packets.ServerPackets.DoAskElevate), - typeof (Packets.ServerPackets.DoDownloadAndExecute), - typeof (Packets.ServerPackets.DoUploadAndExecute), - typeof (Packets.ServerPackets.GetDesktop), - typeof (Packets.ServerPackets.GetProcesses), - typeof (Packets.ServerPackets.DoProcessKill), - typeof (Packets.ServerPackets.DoProcessStart), - typeof (Packets.ServerPackets.GetDrives), - typeof (Packets.ServerPackets.GetDirectory), - typeof (Packets.ServerPackets.DoDownloadFile), - typeof (Packets.ServerPackets.DoMouseEvent), - typeof (Packets.ServerPackets.DoKeyboardEvent), - typeof (Packets.ServerPackets.GetSystemInfo), - typeof (Packets.ServerPackets.DoVisitWebsite), - typeof (Packets.ServerPackets.DoShowMessageBox), - typeof (Packets.ServerPackets.DoClientUpdate), - typeof (Packets.ServerPackets.GetMonitors), - typeof (Packets.ServerPackets.GetWebcams), - typeof (Packets.ServerPackets.GetWebcam), - typeof (Packets.ServerPackets.DoShellExecute), - typeof (Packets.ServerPackets.DoPathRename), - typeof (Packets.ServerPackets.DoPathDelete), - typeof (Packets.ServerPackets.DoShutdownAction), - typeof (Packets.ServerPackets.GetStartupItems), - typeof (Packets.ServerPackets.DoStartupItemAdd), - typeof (Packets.ServerPackets.DoStartupItemRemove), - typeof (Packets.ServerPackets.DoDownloadFileCancel), - typeof (Packets.ServerPackets.GetKeyloggerLogs), - typeof (Packets.ServerPackets.DoUploadFile), - typeof (Packets.ServerPackets.GetPasswords), - typeof (Packets.ServerPackets.DoLoadRegistryKey), - typeof (Packets.ServerPackets.DoCreateRegistryKey), - typeof (Packets.ServerPackets.DoDeleteRegistryKey), - typeof (Packets.ServerPackets.DoRenameRegistryKey), - typeof (Packets.ServerPackets.DoCreateRegistryValue), - typeof (Packets.ServerPackets.DoDeleteRegistryValue), - typeof (Packets.ServerPackets.DoRenameRegistryValue), - typeof (Packets.ServerPackets.DoChangeRegistryValue), - typeof (Packets.ServerPackets.SetAuthenticationSuccess), - typeof (Packets.ServerPackets.GetConnections), - typeof (Packets.ServerPackets.DoCloseConnection), - typeof (Packets.ClientPackets.GetAuthenticationResponse), - typeof (Packets.ClientPackets.SetStatus), - typeof (Packets.ClientPackets.SetStatusFileManager), - typeof (Packets.ClientPackets.SetUserStatus), - typeof (Packets.ClientPackets.GetDesktopResponse), - typeof (Packets.ClientPackets.GetProcessesResponse), - typeof (Packets.ClientPackets.GetDrivesResponse), - typeof (Packets.ClientPackets.GetDirectoryResponse), - typeof (Packets.ClientPackets.DoDownloadFileResponse), - typeof (Packets.ClientPackets.GetSystemInfoResponse), - typeof (Packets.ClientPackets.GetMonitorsResponse), - typeof (Packets.ClientPackets.GetWebcamsResponse), - typeof (Packets.ClientPackets.GetWebcamResponse), - typeof (Packets.ClientPackets.DoShellExecuteResponse), - typeof (Packets.ClientPackets.GetStartupItemsResponse), - typeof (Packets.ClientPackets.GetKeyloggerLogsResponse), - typeof (Packets.ClientPackets.GetPasswordsResponse), - typeof (Packets.ClientPackets.GetRegistryKeysResponse), - typeof (Packets.ClientPackets.GetCreateRegistryKeyResponse), - typeof (Packets.ClientPackets.GetDeleteRegistryKeyResponse), - typeof (Packets.ClientPackets.GetRenameRegistryKeyResponse), - typeof (Packets.ClientPackets.GetCreateRegistryValueResponse), - typeof (Packets.ClientPackets.GetDeleteRegistryValueResponse), - typeof (Packets.ClientPackets.GetRenameRegistryValueResponse), - typeof (Packets.ClientPackets.GetChangeRegistryValueResponse), - typeof (ReverseProxy.Packets.ReverseProxyConnect), - typeof (ReverseProxy.Packets.ReverseProxyConnectResponse), - typeof (ReverseProxy.Packets.ReverseProxyData), - typeof (ReverseProxy.Packets.ReverseProxyDisconnect), - typeof (Packets.ClientPackets.GetConnectionsResponse) - - }); + base.Serializer = new Serializer(PacketRegistery.GetPacketTypes()); base.ClientState += OnClientState; base.ClientRead += OnClientRead; diff --git a/Server/Core/Packets/PacketRegistery.cs b/Server/Core/Packets/PacketRegistery.cs new file mode 100644 index 00000000..26a05eb8 --- /dev/null +++ b/Server/Core/Packets/PacketRegistery.cs @@ -0,0 +1,94 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace xServer.Core.Packets +{ + public class PacketRegistery + { + public static Type[] GetPacketTypes() + { + return new Type[] + { + typeof (Packets.ServerPackets.GetAuthentication), + typeof (Packets.ServerPackets.DoClientDisconnect), + typeof (Packets.ServerPackets.DoClientReconnect), + typeof (Packets.ServerPackets.DoClientUninstall), + typeof (Packets.ServerPackets.DoWebcamStop), + typeof (Packets.ServerPackets.DoAskElevate), + typeof (Packets.ServerPackets.DoDownloadAndExecute), + typeof (Packets.ServerPackets.DoUploadAndExecute), + typeof (Packets.ServerPackets.GetDesktop), + typeof (Packets.ServerPackets.GetProcesses), + typeof (Packets.ServerPackets.DoProcessKill), + typeof (Packets.ServerPackets.DoProcessStart), + typeof (Packets.ServerPackets.GetDrives), + typeof (Packets.ServerPackets.GetDirectory), + typeof (Packets.ServerPackets.DoDownloadFile), + typeof (Packets.ServerPackets.DoMouseEvent), + typeof (Packets.ServerPackets.DoKeyboardEvent), + typeof (Packets.ServerPackets.GetSystemInfo), + typeof (Packets.ServerPackets.DoVisitWebsite), + typeof (Packets.ServerPackets.DoShowMessageBox), + typeof (Packets.ServerPackets.DoClientUpdate), + typeof (Packets.ServerPackets.GetMonitors), + typeof (Packets.ServerPackets.GetWebcams), + typeof (Packets.ServerPackets.GetWebcam), + typeof (Packets.ServerPackets.DoShellExecute), + typeof (Packets.ServerPackets.DoPathRename), + typeof (Packets.ServerPackets.DoPathDelete), + typeof (Packets.ServerPackets.DoShutdownAction), + typeof (Packets.ServerPackets.GetStartupItems), + typeof (Packets.ServerPackets.DoStartupItemAdd), + typeof (Packets.ServerPackets.DoStartupItemRemove), + typeof (Packets.ServerPackets.DoDownloadFileCancel), + typeof (Packets.ServerPackets.GetKeyloggerLogs), + typeof (Packets.ServerPackets.DoUploadFile), + typeof (Packets.ServerPackets.GetPasswords), + typeof (Packets.ServerPackets.DoLoadRegistryKey), + typeof (Packets.ServerPackets.DoCreateRegistryKey), + typeof (Packets.ServerPackets.DoDeleteRegistryKey), + typeof (Packets.ServerPackets.DoRenameRegistryKey), + typeof (Packets.ServerPackets.DoCreateRegistryValue), + typeof (Packets.ServerPackets.DoDeleteRegistryValue), + typeof (Packets.ServerPackets.DoRenameRegistryValue), + typeof (Packets.ServerPackets.DoChangeRegistryValue), + typeof (Packets.ServerPackets.SetAuthenticationSuccess), + typeof (Packets.ServerPackets.GetConnections), + typeof (Packets.ServerPackets.DoCloseConnection), + typeof (Packets.ClientPackets.GetAuthenticationResponse), + typeof (Packets.ClientPackets.SetStatus), + typeof (Packets.ClientPackets.SetStatusFileManager), + typeof (Packets.ClientPackets.SetUserStatus), + typeof (Packets.ClientPackets.GetDesktopResponse), + typeof (Packets.ClientPackets.GetProcessesResponse), + typeof (Packets.ClientPackets.GetDrivesResponse), + typeof (Packets.ClientPackets.GetDirectoryResponse), + typeof (Packets.ClientPackets.DoDownloadFileResponse), + typeof (Packets.ClientPackets.GetSystemInfoResponse), + typeof (Packets.ClientPackets.GetMonitorsResponse), + typeof (Packets.ClientPackets.GetWebcamsResponse), + typeof (Packets.ClientPackets.GetWebcamResponse), + typeof (Packets.ClientPackets.DoShellExecuteResponse), + typeof (Packets.ClientPackets.GetStartupItemsResponse), + typeof (Packets.ClientPackets.GetKeyloggerLogsResponse), + typeof (Packets.ClientPackets.GetPasswordsResponse), + typeof (Packets.ClientPackets.GetRegistryKeysResponse), + typeof (Packets.ClientPackets.GetCreateRegistryKeyResponse), + typeof (Packets.ClientPackets.GetDeleteRegistryKeyResponse), + typeof (Packets.ClientPackets.GetRenameRegistryKeyResponse), + typeof (Packets.ClientPackets.GetCreateRegistryValueResponse), + typeof (Packets.ClientPackets.GetDeleteRegistryValueResponse), + typeof (Packets.ClientPackets.GetRenameRegistryValueResponse), + typeof (Packets.ClientPackets.GetChangeRegistryValueResponse), + typeof (ReverseProxy.Packets.ReverseProxyConnect), + typeof (ReverseProxy.Packets.ReverseProxyConnectResponse), + typeof (ReverseProxy.Packets.ReverseProxyData), + typeof (ReverseProxy.Packets.ReverseProxyDisconnect), + typeof (Packets.ClientPackets.GetConnectionsResponse) + + }; + } + } +} diff --git a/Server/Server.csproj b/Server/Server.csproj index f66ff270..1d0b163c 100644 --- a/Server/Server.csproj +++ b/Server/Server.csproj @@ -173,6 +173,7 @@ +