我使用assembly . loadfrom ("pathtomyassembly")在Application_Start()中预加载程序集。
为什么我不能使用assembly . load ("MyAssemblyName")获得我的程序集,就像我可以从bin目录自动加载任何其他程序集一样。
是否有办法做到这一点,而不调用LoadFrom()与汇编路径每次?
更新:
奇怪的是,当我使用 时AppDomain.CurrentDomain.GetAssemblies()
我可以看到我的程序集被加载到AppDomain中。
是否有一种方法可以在不遍历程序集的情况下获得它?
您需要提供完全限定名称Assembly.Load [Assembly].Load("Assembly text name, Version, Culture, PublicKeyToken")
。
。
Assembly.Load("ActivityLibrary, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null");
裁判:
http://geekswithblogs.net/rupreet/archive/2010/02/16/137988.aspx http://msdn.microsoft.com/en-us/library/x4cw969y.aspx我的预感是你不能使用Assembly.Load("MyAssemblyName")
,因为在你的程序的bin目录中没有匹配的DLL。您的构建脚本需要手动将DLL从pathtomyassembly
复制到程序的bin目录,或者您需要将其添加为解决方案中的链接,并确保选中"复制到输出目录"。
我最终通过AppDomain.CurrentDomain.GetAssemblies()循环获得我的程序集。
public static Assembly GetAssemblyFromAppDomain(string assemblyName)
{
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
if (assembly.FullName.StartsWith(assemblyName + ","))
{
return assembly;
}
}
return null;
}
一切正常