检查 SignalR 程序集是否存在

Check if SignalR assembly exists or not

如何检查 SignalR 程序集是否存在以避免此错误:

Could not load file or assembly '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);

什么是最好的解决方案?

当前域的

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