Загрузка сборок в FrameWork 2.0
От: Сергей И.  
Дата: 07.04.06 14:18
Оценка:
Чем заменить вот такой код:
Assembly assembly = Assembly.LoadWithPartialName("System.Windows.Forms");

прекрасно работавший в первом фрэймворке?

Все попытки сделать так:

Assembly assembly = Assembly.Load("System.Windows.Forms");

или так:

AssemblyName assemblyInfo = new AssemblyName("System.Windows.Forms");
assemblyInfo.Version = new Version(2,0,0,0);
Assembly assembly = Assembly.Load(assemblyInfo);

приводят к FileNotFoundException...

И может кто-нибудь посоветует что-нибудь почитать про динамическую загрузку сборок во втором фрэймворке?
Re: Загрузка сборок в FrameWork 2.0
От: xexe2  
Дата: 07.04.06 14:55
Оценка:
Здравствуйте, Сергей И., Вы писали:

СИ>Чем заменить вот такой код:

СИ>
СИ>Assembly assembly = Assembly.LoadWithPartialName("System.Windows.Forms");
СИ>

СИ>прекрасно работавший в первом фрэймворке?

СИ>Все попытки сделать так:


СИ>
СИ>Assembly assembly = Assembly.Load("System.Windows.Forms");
СИ>

СИ>или так:

СИ>
СИ>AssemblyName assemblyInfo = new AssemblyName("System.Windows.Forms");
СИ>assemblyInfo.Version = new Version(2,0,0,0);
СИ>Assembly assembly = Assembly.Load(assemblyInfo);
СИ>

СИ>приводят к FileNotFoundException...

СИ>И может кто-нибудь посоветует что-нибудь почитать про динамическую загрузку сборок во втором фрэймворке?




Assembly assembly = Assembly.Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");

?
ну вроде и все:)
Re[2]: Загрузка сборок в FrameWork 2.0
От: Сергей И.  
Дата: 07.04.06 15:03
Оценка: 4 (1)
Здравствуйте, xexe2, Вы писали:

X>
X>Assembly assembly = Assembly.Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
X>

X>?

О! Спасибо Так гораздо лучше
Re[3]: Загрузка сборок в FrameWork 2.0
От: tazo_  
Дата: 07.04.06 23:36
Оценка:
Здравствуйте, Сергей И., Вы писали:

СИ>Здравствуйте, xexe2, Вы писали:


X>>
X>>Assembly assembly = Assembly.Load("System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
X>>

X>>?

СИ>О! Спасибо Так гораздо лучше


Как вариант, можно прописать в конфиге приложения:

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
         <qualifyAssembly partialName="System.Windows.Forms" 
                         fullName="System.Windows.Forms,version=2.0.0.0,publicKeyToken=b77a5c561934e089,culture=neutral"/>
      </assemblyBinding>
   </runtime>
</configuration>


Тогда в коде можно использовать частичное имя сборки:

Assembly assembly = Assembly.Load( "System.Windows.Forms" );


То есть, элемент qualifyAssembly конфига отображает короткое имя на полное имя сборки.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Загрузка сборок в FrameWork 2.0
От: Сергей И.  
Дата: 08.04.06 10:16
Оценка:
О! Спасибо
Загрузка сборок в FrameWork 2.0
От: Аноним  
Дата: 07.04.06 14:31
Оценка: 3 (1)
Смотрите статью Avoid Partial Binds. Там описано, как работает LoadWithPartialName и почему этот метод убрали в .NET Framework 2.0


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: Загрузка сборок в FrameWork 2.0
От: Аноним  
Дата: 12.04.06 11:24
Оценка:
Ответ быстрый, но неверный. Я извиняюсь, что опять подымаю эту тему, но проблема не решена.
Речь идёт о загрузке сборки с ЧАСТИЧНО указанным именем. Например, моя проблема звучит похоже: требуется загрузить сборку, зная её имя (например, "System.Data") и МИНИМАЛЬНУЮ ВЕРСИЮ (любая, но новее 2.0). Так как же это сделать?


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Загрузка сборок в FrameWork 2.0
От: Andrbig  
Дата: 12.04.06 12:04
Оценка:
Здравствуйте, Thornik, Вы писали:

T>Ответ быстрый, но неверный. Я извиняюсь, что опять подымаю эту тему, но проблема не решена.

T>Речь идёт о загрузке сборки с ЧАСТИЧНО указанным именем. Например, моя проблема звучит похоже: требуется загрузить сборку, зная её имя (например, "System.Data") и МИНИМАЛЬНУЮ ВЕРСИЮ (любая, но новее 2.0). Так как же это сделать?

Есть ли в FW 2 енумерация GAC? Если нет, то используя всякие GAC API, как в FW 1.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.