Невозможно получить предварительно загруженную сборку с Assembly.Load () - PullRequest
0 голосов
/ 16 сентября 2011

Я предварительно загружаю сборку в Application_Start () с помощью Assembly.LoadFrom ("pathtomyassembly").

Почему я не могу получить свою сборку с использованием Assembly.Load ("MyAssemblyName") так же, как яможет с любой другой сборкой, загруженной автоматически из каталога bin.

Есть ли способ сделать это без вызова LoadFrom () с путем сборки каждый раз?

ОБНОВЛЕНИЕ:

Странно то, что когда я использую

AppDomain.CurrentDomain.GetAssemblies()

, я вижу, что моя сборка загружена в домен приложений.

Есть ли способ получить ее безцикл по сборкам?

Ответы [ 3 ]

1 голос
/ 16 сентября 2011

вам необходимо указать полное имя 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

0 голосов
/ 16 сентября 2011

Я закончил циклом 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;   
}

Кажется, все работает нормально.

0 голосов
/ 16 сентября 2011

Я думаю, вы не можете использовать Assembly.Load("MyAssemblyName"), потому что в каталоге bin вашей программы нет соответствующей DLL. Ваш скрипт сборки должен будет вручную скопировать эту DLL из pathtomyassembly в каталог bin вашей программы, или вам нужно будет добавить ее в качестве ссылки в вашем решении и убедиться, что установлен флажок «Копировать в выходной каталог».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...