Привет всем.
Я выполняю динамическую компиляцию при работе программы. Компиляция в памяти. При этом используются некие мои дополнительные библиотеки. Я указываю к ним путь и компиляция проходит нормально. Но при выполнении кода, вызывающего что-то из этих библиотек возникает исключение — она тупо не находит эти библиотеки. Если их бросаешь в один каталог с программой — все нормально. Есть ли возможность указать их расположение. Какие библиотеки будут использованы заранее неизвестно.
S>В чем проблема держать все в одном каталоге?
Хотел держать их в каталоге ./Plugin
— что никак не решается?
Здравствуйте, Didi, Вы писали:
D>Привет всем.
D>Я выполняю динамическую компиляцию при работе программы. Компиляция в памяти. При этом используются некие мои дополнительные библиотеки. Я указываю к ним путь и компиляция проходит нормально. Но при выполнении кода, вызывающего что-то из этих библиотек возникает исключение — она тупо не находит эти библиотеки. Если их бросаешь в один каталог с программой — все нормально. Есть ли возможность указать их расположение. Какие библиотеки будут использованы заранее неизвестно.
На 100% не уверен,но можно попробовать перед загрузкой библиотеки сделать SetCurrentDirectory(путь до остальных дллок), возможно он попробует поискать их там перед загрузкой
но если dll,раскиданы по диску,попробовать регистрацию в gac.
Если dll'ок много и не хочется создавать в гаке помойку, тогда самому интересно послушать мнение,других ребят ,какие варианты есть еще
Здравствуйте, Didi, Вы писали:
D>Привет всем.
D>Я выполняю динамическую компиляцию при работе программы. Компиляция в памяти. При этом используются некие мои дополнительные библиотеки. Я указываю к ним путь и компиляция проходит нормально. Но при выполнении кода, вызывающего что-то из этих библиотек возникает исключение — она тупо не находит эти библиотеки. Если их бросаешь в один каталог с программой — все нормально. Есть ли возможность указать их расположение. Какие библиотеки будут использованы заранее неизвестно.
забыл добавить еще 1 вариант
можно попробовать подписаться на событие
AppDomain.CurrentDomain.AssemblyResolve
и в нем разрезолвить то что не загрузилось
Здравствуйте, Didi, Вы писали:
D>Привет всем.
D>Я выполняю динамическую компиляцию при работе программы. Компиляция в памяти. При этом используются некие мои дополнительные библиотеки. Я указываю к ним путь и компиляция проходит нормально. Но при выполнении кода, вызывающего что-то из этих библиотек возникает исключение — она тупо не находит эти библиотеки. Если их бросаешь в один каталог с программой — все нормально. Есть ли возможность указать их расположение. Какие библиотеки будут использованы заранее неизвестно.
http://stackoverflow.com/questions/1892492/c-sharp-set-custom-path-to-referenced-dlls