Здравствуйте, Lassor, Вы писали:
L>Здравствуйте, Akzhan, Вы писали:
A>Используйте файлы конфигурации, переменная privatePath.
L>Да, вы правы, это возможно, но следуя из выдержки из msdn:
L>"The directories specified in privatePath must be subdirectories of the application base directory." (ms-help://MS.VSCC/MS.MSDNVS/cpguide/html/cpconspecifyingassemblyslocation.htm)
L>описанная директория должна быть под-директорией, интересует же обратный случай, когда референс ассембл в родительской..
Сие, Сударь, невозможно.
Это политика .NET — сборка видит только то, что лежит не выше ее директории.
Ну и GAC, конечно, есть.
Ed.ward
... << RSDN@Home 1.0 beta 7a >>
Re[4]: Reference в директорию, отличную от расположения asse
Здравствуйте, Ed.ward, Вы писали:
EW>Сие, Сударь, невозможно. EW>Это политика .NET — сборка видит только то, что лежит не выше ее директории. EW>Ну и GAC, конечно, есть.
Спасибо, видимо, действительно его использовать и придётся
Re[4]: Reference в директорию, отличную от расположения asse
Здравствуйте, PeterZT, Вы писали:
PZT> Если сильно захотеть можно в космос улететь. PZT>В AppDomain добавляем eventHandler на AssemblyResolve и хоть динамически эту сборку конструируй.
Динамически-то это да, но можно ли загрузить руками assembly находящуюся выше по дереву каталогов?
Ed.ward
... << RSDN@Home 1.0 beta 7a >>
Re[6]: Reference в директорию, отличную от расположения asse
EW>Динамически-то это да, но можно ли загрузить руками assembly находящуюся выше по дереву каталогов?
FileInfo fi = new FileInfo("c:\\super-sborka.dll");
byte[] res = new byte[fi.Length];
using(FileStream fs = new FileStream(asm,FileMode.Open,
FileAccess.Read))
fs.Read(res,0,(int)fi.Length);
Assembly asm = AppDomain.CurrentDomain.Load(res)
... << RSDN@Home 1.0 beta 7a >>
Re[4]: Reference в директорию, отличную от расположения asse
Здравствуйте, Ed.ward, Вы писали:
EW>Сие, Сударь, невозможно. EW>Это политика .NET — сборка видит только то, что лежит не выше ее директории. EW>Ну и GAC, конечно, есть.
Не совсем так. Данное ограничение касается только private-сборок. Достаточно подписать сборку и добавить dependency в config, и можно использовать референсную сборку из любой директории и даже из веба
B>Assembly objAssembly = Assembly.LoadFrom( @"c:\super-sborka.dll" );
MMP>Это да, но это не поможет, когда в super-sborka.dll находятся референсные типы и другие референсные вещи.
Стопудово поможет. Нужно только повесить handler на событие AppDomain.ResolveAssembly и возвращать нужную Assembly. Но handler нужно повесить до того, как референс понадобится первый раз.