2016-09-18 3 views
0

저는 Visual Studio 2015 Pro에서 Xamarin을 사용하여 Android 용 채팅 응용 프로그램을 만들고 있습니다. SignalR 생성 된 프록시에 대한 실제 파일을 만들고 싶습니다. 설명 : SignalR Hubs API Guide 명시된대로 Microsoft.AspNet.SignalR.Utils NuGet 패키지를 설치하십시오. 는 내가 노력 :server.js 파일을 생성하는 동안 signalr에서 오류가 발생했습니다.

signalr.exe ghp /path:"D:\WORKS\VISUALSTUDIO\ASPWEBSITE\ServerSignalR_ChatHub\ServerSignalR_ChatHub\bin"

하지만 항상 오류가 아래에 있습니다 :

SignalR Utility Version: 2.2.1.0 
Creating temp directory C:\Users\vivek\AppData\Local\Temp\aeb9348c-3f99-4537-bed7-7313b3c4bcbe 

Warning: Could not load file or assembly 'Microsoft.DiaSymReader.Native.amd64.dll' or one of its dependencies. The module was expected to contain an assembly manifest. 


Warning: Could not load file or assembly 'Microsoft.DiaSymReader.Native.x86.dll' or one of its dependencies. The module was expected to contain an assembly manifest. 


Warning: Could not load file or assembly 'Microsoft.DiaSymReader.Native.amd64.dll' or one of its dependencies. The module was expected to contain an assembly manifest. 


Warning: Could not load file or assembly 'Microsoft.DiaSymReader.Native.x86.dll' or one of its dependencies. The module was expected to contain an assembly manifest. 


Error: System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.IO.FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 
    at Microsoft.AspNet.SignalR.DefaultDependencyResolver.RegisterDefaultServices() 
    at Microsoft.AspNet.SignalR.DefaultDependencyResolver..ctor() 
    --- End of inner exception stack trace --- 

Server stack trace: 
    at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) 
    at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 
    at System.Activator.CreateInstance(Type type, Boolean nonPublic) 
    at System.Activator.CreateInstance(Type type) 
    at Microsoft.AspNet.SignalR.Utils.GenerateHubProxyCommand.JavaScriptGenerator.GenerateProxy(String path, String url, Action`1 warning) 
    at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) 
    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg) 

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    at Microsoft.AspNet.SignalR.Utils.GenerateHubProxyCommand.JavaScriptGenerator.GenerateProxy(String path, String url, Action`1 warning) 
    at Microsoft.AspNet.SignalR.Utils.GenerateHubProxyCommand.OutputHubs(String path, String url, String outputPath) 
    at Microsoft.AspNet.SignalR.Utils.GenerateHubProxyCommand.Execute(String[] args) 
    at Microsoft.AspNet.SignalR.Utils.Program.Main(String[] args) 

Also tried:

signalr.exe ghp /assembly:"D:\WORKS\VISUALSTUDIO\ASPWEBSITE\ServerSignalR_ChatHub\ServerSignalR_ChatHub\bin\ServerSignalR_ChatHub.dll"

It generate empty server.js file

무엇 내가 잘못된 일을하거나 놓친 거지?

답변

0

오, 남자 .... 많은 연구 끝에 드디어 답을 찾았습니다. 오류 :

어셈블리를로드 할 수 없습니다. Newtonsoft.Json, Version = 6.0.0.0. 하지만 버전 = 9.0.0.0 그래서 나는 그것을 강제로 제거하고 최소한의 의존성 버전 = 6.0.0.0 (내 경우에는 SignalR.Core.dll (v2.2.1)에 의존한다)을 설치한다.

uninstall-package newtonsoft.json -force 

install-package newtonsoft.json -version "6.0.4" 

다음 실행

signalr.exe ghp /path:"D:\WORKS\<path>\ServerSignalR_ChatHub\bin" 

그리고 그것은 server.js를 성공적으로 생성!

관련 문제