我正在开发一个具有客户端和服务器端的项目。我正在编写一个“预签入”工具,它将验证我们在客户端和服务器之间的大量通信。
我已经对双方进行了单元测试,现在我真的很想测试两者之间的集成。
就像一个真正的客户端连接到服务器,反之亦然。
我正在尝试了解“TwitterSearch.UI.Console”是如何工作的,因为我认为斜纹布对我来说是一个很好的起点,但是在花了一些时间与之抗争之后,我认为最好在这里询问专业人士。
我正在使用这里的最新版本: https ://github.com/slodge/MvvmCross-Tutorials
与最新的二进制文件配对。
现在这是输出调试溢出:
mvx:诊断:0.01 设置:PlatformServices 启动 mvx:诊断:0.02 设置:MvvmCross 设置开始 mvx:诊断:0.02 设置:单例缓存启动 mvx:诊断:0.02 设置:引导操作 mvx:诊断:0.05 设置:StringToTypeParser 启动 mvx:诊断:0.05 设置:ViewModelFramework 启动 mvx:诊断:0.05 设置:PluginManagerFramework 启动 mvx:诊断:0.06 设置:应用程序启动 mvx:诊断:0.07 加载插件程序集:Cirrious.MvvmCross.Plugins.Visibility.Wpf 'TwitterSearch.UI.Console.vshost.exe'(托管 (v4.0.30319)):已加载 'C:\fileZ\projZ\samples\MvvmCross-Tutorials\Sample - TwitterSearch\TwitterSearch.UI.Console\bin\Debug\TwitterSearch .Core.dll',已加载符号。 'TwitterSearch.UI.Console.vshost.exe'(托管(v4.0.30319)):加载'C:\fileZ\projZ\samples\MvvmCross-Tutorials\Sample - TwitterSearch\TwitterSearch.UI.Console\bin\Debug\Cirrious .MvvmCross.Plugins.Visibility.dll',已加载符号。 mscorlib.dll 中出现了“System.IO.FileNotFoundException”类型的第一次机会异常 Cirrious.CrossCore.dll 中发生了“CrossCore.Exceptions.MvxException”类型的第一次机会异常
在异常详细信息中,插件管理器似乎将程序集的名称解析错误?
他正在尝试加载Cirrious.MvvmCross.Plugins.Visibility.Wpf,.Console 应用程序引用的那个是Cirrious.MvvmCross.Plugins.Visibility.Console.
以下是异常的更多详细信息:
Cirrious.CrossCore.Exceptions.MvxException 未处理
H结果=-2146233088
消息=无法加载文件或程序集“Cirrious.MvvmCross.Plugins.Visibility.Wpf”或其依赖项之一。该系统找不到指定的文件。
源 = Cirrious.CrossCore
堆栈跟踪:
在 Cirrious.CrossCore.Plugins.MvxPluginManager.ExceptionWrappedLoadPlugin(Type toLoad) 在 c:\Projects\Misc\MVVMCROSS\CrossCore\Cirrious.CrossCore\Plugins\MvxPluginManager.cs:line 136
在 Cirrious.CrossCore.Plugins.MvxPluginManager.EnsurePlatformAdaptionLoaded[T]() 在 c:\Projects\Misc\MVVMCROSS\CrossCore\Cirrious.CrossCore\Plugins\MvxPluginManager.cs:line 87
在 Cirrious.MvvmCross.Plugins.Visibility.PluginLoader.EnsureLoaded() 在 c:\Projects\Misc\MVVMCROSS\Plugins\Cirrious\Visibility\Cirrious.MvvmCross.Plugins.Visibility\PluginLoader.cs:line 23
在 TwitterSearch.Core.TwitterSearchApp.InitialisePlugIns() 在 c:\fileZ\projZ\samples\MvvmCross-Tutorials\Sample - TwitterSearch\TwitterSearch.Core\TwitterSearchApp.cs:line 33
在 c:\fileZ\projZ\samples\MvvmCross-Tutorials\Sample 中的 TwitterSearch.Core.TwitterSearchApp..ctor() - TwitterSearch\TwitterSearch.Core\TwitterSearchApp.cs:line 15
在 c:\fileZ\projZ\samples\MvvmCross-Tutorials\Sample 中的 TwitterSearch.UI.Console.Setup.CreateApp() - TwitterSearch\TwitterSearch.UI.Console\Setup.cs:line 16
在 Cirrious.MvvmCross.Platform.MvxSetup.CreateAndInitializeApp(IMvxPluginManager pluginManager) 在 c:\Projects\Misc\MVVMCROSS\Cirrious\Cirrious.MvvmCross\Platform\MvxSetup.cs:line 272
在 Cirrious.MvvmCross.Platform.MvxSetup.InitializeApp(IMvxPluginManager pluginManager) 在 c:\Projects\Misc\MVVMCROSS\Cirrious\Cirrious.MvvmCross\Platform\MvxSetup.cs:line 265
在 Cirrious.MvvmCross.Platform.MvxSetup.InitializeSecondary() 在 c:\Projects\Misc\MVVMCROSS\Cirrious\Cirrious.MvvmCross\Platform\MvxSetup.cs:line 77
在 Cirrious.MvvmCross.Platform.MvxSetup.Initialize() 在 c:\Projects\Misc\MVVMCROSS\Cirrious\Cirrious.MvvmCross\Platform\MvxSetup.cs:line 36
在 TwitterSearch.UI.Console.Program.Run() 在 c:\fileZ\projZ\samples\MvvmCross-Tutorials\Sample - TwitterSearch\TwitterSearch.UI.Console\Program.cs:line 21
在 TwitterSearch.UI.Console.Program.Main(String[] args) 在 c:\fileZ\projZ\samples\MvvmCross-Tutorials\Sample - TwitterSearch\TwitterSearch.UI.Console\Program.cs:line 14
在 System.AppDomain._nExecuteAssembly(RuntimeAssembly 程序集,字符串 [] 参数)
在 System.AppDomain.ExecuteAssembly(字符串 assemblyFile,证据 assemblySecurity,String [] args)
在 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
在 System.Threading.ThreadHelper.ThreadStart_Context(对象状态)
在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback 回调,对象状态,布尔值 preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态,布尔值 preserveSyncCtx)
在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态)
在 System.Threading.ThreadHelper.ThreadStart()
内部异常:System.IO.FileNotFoundException
H结果=-2147024894
消息=无法加载文件或程序集“Cirrious.MvvmCross.Plugins.Visibility.Wpf”或其依赖项之一。该系统找不到指定的文件。
源=mscorlib
FileName=Cirrious.MvvmCross.Plugins.Visibility.Wpf
FusionLog==== 预绑定状态信息===
日志:用户 = LAGOA\Sergio
日志:DisplayName = Cirrious.MvvmCross.Plugins.Visibility.Wpf
(部分的)
警告:为程序集提供了部分绑定信息:
警告:程序集名称:Cirrious.MvvmCross.Plugins.Visibility.Wpf | 域 ID:1
警告:仅提供部分程序集显示名称时会发生部分绑定。
警告:这可能会导致活页夹加载不正确的程序集。
警告:建议为程序集提供完全指定的文本标识,
WRN:由简单的名称、版本、文化和公钥标记组成。
警告:有关此问题的详细信息和常见解决方案,请参阅白皮书 http://go.microsoft.com/fwlink/?LinkId=109270。
日志:Appbase = file:///C:/fileZ/projZ/samples/MvvmCross-Tutorials/Sample - TwitterSearch/TwitterSearch.UI.Console/bin/Debug/
日志:初始 PrivatePath = NULL
调用程序集:Cirrious.CrossCore,Version=1.0.0.0,Culture=neutral,PublicKeyToken=e16445fd9b451819。
===
LOG:此绑定在默认加载上下文中开始。
LOG:使用应用程序配置文件:C:\fileZ\projZ\samples\MvvmCross-Tutorials\Sample - TwitterSearch\TwitterSearch.UI.Console\bin\Debug\TwitterSearch.UI.Console.vshost.exe.Config
LOG:使用主机配置文件:
LOG:使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 中的机器配置文件。
LOG:此时未将策略应用于引用(私有、自定义、部分或基于位置的程序集绑定)。
日志:尝试下载新 URL 文件:///C:/fileZ/projZ/samples/MvvmCross-Tutorials/Sample - TwitterSearch/TwitterSearch.UI.Console/bin/Debug/Cirrious.MvvmCross.Plugins.Visibility.Wpf.DLL .
日志:尝试下载新的 URL 文件:///C:/fileZ/projZ/samples/MvvmCross-Tutorials/Sample - TwitterSearch/TwitterSearch.UI.Console/bin/Debug/Cirrious.MvvmCross.Plugins.Visibility.Wpf/Cirrious .MvvmCross.Plugins.Visibility.Wpf.DLL。
日志:尝试下载新 URL 文件:///C:/fileZ/projZ/samples/MvvmCross-Tutorials/Sample - TwitterSearch/TwitterSearch.UI.Console/bin/Debug/Cirrious.MvvmCross.Plugins.Visibility.Wpf.EXE .
日志:尝试下载新的 URL 文件:///C:/fileZ/projZ/samples/MvvmCross-Tutorials/Sample - TwitterSearch/TwitterSearch.UI.Console/bin/Debug/Cirrious.MvvmCross.Plugins.Visibility.Wpf/Cirrious .MvvmCross.Plugins.Visibility.Wpf.EXE。
堆栈跟踪:
在 System.Reflection.RuntimeAssembly._nLoad(AssemblyName 文件名,字符串代码库,证据 assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark 和 stackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔suppressSecurityChecks)
在 System.Reflection.RuntimeAssembly.nLoad(AssemblyName 文件名,字符串 codeBase,证据 assemblySecurity,RuntimeAssembly locationHint,StackCrawlMark 和 stackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔suppressSecurityChecks)
在 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef,证据 assemblySecurity,RuntimeAssembly reqAssembly,StackCrawlMark 和 stackMark,IntPtr pPrivHostBinder,布尔 throwOnFileNotFound,布尔 forIntrospection,布尔suppressSecurityChecks)
在 System.Reflection.RuntimeAssembly.InternalLoad(字符串 assemblyString,证据 assemblySecurity,StackCrawlMark 和 stackMark,IntPtr pPrivHostBinder,Boolean forIntrospection)
在 System.Reflection.RuntimeAssembly.InternalLoad(字符串 assemblyString,证据 assemblySecurity,StackCrawlMark 和 stackMark,Boolean for Introspection)
在 System.Reflection.Assembly.Load(字符串 assemblyString)
在 Cirrious.CrossCore.Plugins.MvxFilePluginManager.LoadAssembly(Type toLoad) 在 c:\Projects\Misc\MVVMCROSS\CrossCore\Cirrious.CrossCore\Plugins\MvxFilePluginManager.cs:line 53
在 Cirrious.CrossCore.Plugins.MvxFilePluginManager.FindPlugin(Type toLoad) 在 c:\Projects\Misc\MVVMCROSS\CrossCore\Cirrious.CrossCore\Plugins\MvxFilePluginManager.cs:line 31
在 Cirrious.CrossCore.Plugins.MvxPluginManager.ExceptionWrappedLoadPlugin(Type toLoad) 在 c:\Projects\Misc\MVVMCROSS\CrossCore\Cirrious.CrossCore\Plugins\MvxPluginManager.cs:line 120
内部异常:
有人可以帮我弄清楚我是否做错了什么,或者插件是否真的试图加载错误的文件?
谢谢你,塞尔吉奥