{"action":"created","issue":{"url":"https://api.github.com/repos/kerryjiang/SuperWebSocket/issues/29","repository_url":"https://api.github.com/repos/kerryjiang/SuperWebSocket","labels_url":"https://api.github.com/repos/kerryjiang/SuperWebSocket/issues/29/labels{/name}","comments_url":"https://api.github.com/repos/kerryjiang/SuperWebSocket/issues/29/comments","events_url":"https://api.github.com/repos/kerryjiang/SuperWebSocket/issues/29/events","html_url":"https://github.com/kerryjiang/SuperWebSocket/issues/29","id":127749721,"number":29,"title":"Could not load file or assembly 'SuperSocket.SocketEngine' or one of its dependencies. The system cannot find the file specified.","user":{"login":"thomaslevesque","id":1864281,"avatar_url":"https://avatars.githubusercontent.com/u/1864281?v=3","gravatar_id":"","url":"https://api.github.com/users/thomaslevesque","html_url":"https://github.com/thomaslevesque","followers_url":"https://api.github.com/users/thomaslevesque/followers","following_url":"https://api.github.com/users/thomaslevesque/following{/other_user}","gists_url":"https://api.github.com/users/thomaslevesque/gists{/gist_id}","starred_url":"https://api.github.com/users/thomaslevesque/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomaslevesque/subscriptions","organizations_url":"https://api.github.com/users/thomaslevesque/orgs","repos_url":"https://api.github.com/users/thomaslevesque/repos","events_url":"https://api.github.com/users/thomaslevesque/events{/privacy}","received_events_url":"https://api.github.com/users/thomaslevesque/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2016-01-20T18:12:47Z","updated_at":"2016-02-23T10:42:30Z","closed_at":null,"body":"I used [this NuGet package](https://www.nuget.org/packages/SuperSocket.WebSocket/1.6.5), which seems to be the most recent. The package doesn't contain `SuperSocket.SocketEngine`.\r\n\r\nHere's the stack trace:\r\n\r\n```\r\nat System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMarkHandle stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName, ObjectHandleOnStack type)\r\n   at System.RuntimeTypeHandle.GetTypeByName(String name, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean loadTypeFromPartialName)\r\n   at System.RuntimeType.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, Boolean reflectionOnly, StackCrawlMark& stackMark)\r\n   at System.Type.GetType(String typeName, Boolean throwOnError)\r\n   at SuperSocket.SocketBase.AppServerBase`2.SetupBasic(IRootConfig rootConfig, IServerConfig config, ISocketServerFactory socketServerFactory)\r\n   at SuperSocket.SocketBase.AppServerBase`2.Setup(IRootConfig rootConfig, IServerConfig config, ISocketServerFactory socketServerFactory, IReceiveFilterFactory`1 receiveFilterFactory, ILogFactory logFactory, IEnumerable`1 connectionFilters, IEnumerable`1 commandLoaders)\r\n   at SuperSocket.SocketBase.AppServerBase`2.Setup(IServerConfig config, ISocketServerFactory socketServerFactory, IReceiveFilterFactory`1 receiveFilterFactory, ILogFactory logFactory, IEnumerable`1 connectionFilters, IEnumerable`1 commandLoaders)\r\n```\r\n\r\nAnd the fusion log from the exception, if it helps:\r\n\r\n```\r\n=== Pre-bind state information ===\r\nLOG: DisplayName = SuperSocket.SocketEngine\r\n (Partial)\r\nWRN: Partial binding information was supplied for an assembly:\r\nWRN: Assembly Name: SuperSocket.SocketEngine | Domain ID: 1\r\nWRN: A partial bind occurs when only part of the assembly display name is provided.\r\nWRN: This might result in the binder loading an incorrect assembly.\r\nWRN: It is recommended to provide a fully specified textual identity for the assembly,\r\nWRN: that consists of the simple name, version, culture, and public key token.\r\nWRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.\r\nLOG: Appbase = file:///[redacted]/bin/Debug/\r\nLOG: Initial PrivatePath = NULL\r\nCalling assembly : SuperSocket.SocketBase, Version=1.6.5.0, Culture=neutral, PublicKeyToken=6c80000676988ebb.\r\n===\r\nLOG: This bind starts in default load context.\r\nLOG: Using application configuration file: [redacted]\\bin\\Debug\\MyApp.vshost.exe.Config\r\nLOG: Using host configuration file: \r\nLOG: Using machine configuration file from C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\config\\machine.config.\r\nLOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).\r\nLOG: Attempting download of new URL file:///[redacted]/bin/Debug/SuperSocket.SocketEngine.DLL.\r\nLOG: Attempting download of new URL file:///[redacted]/bin/Debug/SuperSocket.SocketEngine/SuperSocket.SocketEngine.DLL.\r\nLOG: Attempting download of new URL file:///[redacted]/bin/Debug/SuperSocket.SocketEngine.EXE.\r\nLOG: Attempting download of new URL file:///[redacted]/bin/Debug/SuperSocket.SocketEngine/SuperSocket.SocketEngine.EXE.\r\n```\r\n\r\nApparently `SuperSocket.SocketBase` needs `SuperSocket.SocketEngine` (although there's no explicit reference), but `SuperSocket.SocketEngine` has a reference to `SuperSocket.SocketBase`... How is this all supposed to work?\r\n\r\nAnyway, adding the `SuperSocket.Engine` package solves the problem. I think the `SuperSocket.WebSocket` package should have a dependency on `SuperSocket.Engine`, not `SuperSocket`"},"comment":{"url":"https://api.github.com/repos/kerryjiang/SuperWebSocket/issues/comments/187647580","html_url":"https://github.com/kerryjiang/SuperWebSocket/issues/29#issuecomment-187647580","issue_url":"https://api.github.com/repos/kerryjiang/SuperWebSocket/issues/29","id":187647580,"user":{"login":"thomaslevesque","id":1864281,"avatar_url":"https://avatars.githubusercontent.com/u/1864281?v=3","gravatar_id":"","url":"https://api.github.com/users/thomaslevesque","html_url":"https://github.com/thomaslevesque","followers_url":"https://api.github.com/users/thomaslevesque/followers","following_url":"https://api.github.com/users/thomaslevesque/following{/other_user}","gists_url":"https://api.github.com/users/thomaslevesque/gists{/gist_id}","starred_url":"https://api.github.com/users/thomaslevesque/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thomaslevesque/subscriptions","organizations_url":"https://api.github.com/users/thomaslevesque/orgs","repos_url":"https://api.github.com/users/thomaslevesque/repos","events_url":"https://api.github.com/users/thomaslevesque/events{/privacy}","received_events_url":"https://api.github.com/users/thomaslevesque/received_events","type":"User","site_admin":false},"created_at":"2016-02-23T10:42:30Z","updated_at":"2016-02-23T10:42:30Z","body":"> There is another package you need use:\r\n> SuperSocket.Engine\r\n\r\nYes, as I said in the issue description ;)\r\n\r\nWhat I'm saying is that if this package is necessary, it should be a dependency of the `SuperSocket.WebSocket` package, so that it's added automatically."}}