如何检查SignalR组件是否存在以避免此错误:
无法加载文件或程序集' Microsoft.AspNet.SignalR.Core, Version = 2.2.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'
我想在SignalR dll存在时运行一个方法。我有这段代码,但它总是false
。
var exists = AppDomain.CurrentDomain.GetAssemblies().Any(item => item.FullName.Contains("Microsoft.AspNet.SignalR.Core"));
if (exists)
AddRowSignalR(faraLog);
什么是最佳解决方案?
答案 0 :(得分:1)
GetAssemblies
将仅列出已在该域中加载的程序集。请参阅文档:
https://msdn.microsoft.com/en-us/library/system.appdomain.getassemblies%28v=vs.110%29.aspx
在执行代码中引用该程序集中的类型之前,不会自动加载程序集。如果要在没有(首先)直接在代码中引用该程序集中的任何类型的情况下加载程序集,则需要使用Assembly.Load
方法。请参阅文档,尤其是底部的示例:
https://msdn.microsoft.com/en-us/library/25y1ya39%28v=vs.110%29.aspx