无法使用assembly . load()获取预加载程序集



我使用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;   
}

一切正常

相关内容

  • 没有找到相关文章

最新更新