检查SignalR组件是否存在

时间:2015-04-11 07:27:11

标签: c# asp.net .net signalr

如何检查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);

什么是最佳解决方案?

1 个答案:

答案 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