У меня есть вопрос о side-by-side assemblies
,
Вот ситуация:
У меня есть исполняемый файл, app.exe
, который загружает плагины путем поиска plugins
каталог. app.exe
зависит от определенного A.dll
,
Я разрабатываю плагин, который зависит от старой, настроенной версии A.dll
это то же имя. Обновление этой старой, настроенной версии до новой версии невозможно, поэтому я подумал, что смогу загрузить два A.dll
файлы одновременно.
Вот структура каталогов:
\bin
app.exe
A.dll (newer version)
\plugins
myplugin.dll
Обе версии A.dll
сами по себе зависят от огромного количества других DLL, которые могут иметь схожие проблемы с версиями. (Я должен также упомянуть, что я работаю с 64-битным приложением, если это имеет значение.)
Как настроить это в Visual Studio таким образом, чтобы я мог загрузить оба A.dll
библиотеки в то же время, так что myplugin.dll
использует старую версию, тогда как app.exe
использует более новую версию?
Поскольку это плагины, вы загружаете их, вызывая LoadLibrary
, или похожие. В этом случае вы можете просто передать полный путь к DLL, чтобы загрузить ее.