#c# #.net #.net-assembly #appdomain
#c# #.net #.net-сборка #appdomain
Вопрос:
Перенаправление с автоматической привязкой можно отключить для всего проекта с помощью следующего кода:
<AutoGenerateBindingRedirects>false</AutoGenerateBindingRedirects>
Есть ли у вас какие-либо идеи, как я могу отключить автоматическое перенаправление привязки для определенного dll
?
Я пытаюсь перенести логику перенаправления из clients( *.exe | app.config amp; PS | CurrentDomain.AssemblyResolve
) в саму библиотеку классов.
Приведенная ниже схема является упрощенным решением, которое я использую.
PSexe(client) --> adapters.dll
| --> adapter.V1.dll --> third.party.V1.dll (assembly_name: third.party v1)
|
| --> adapter.V2.dll --> third.party.V2.dll (assembly_name: third.party v2)
|
| --> adapter.V3.dll --> third.party.V2.dll (assembly_name: third.party v3)
Важная вещь, к которой у меня нет доступа third.party.dll
. И имя сборки одинаково для всех версий. Я просто изменил имена файлов dlls
, чтобы сохранить их в одной папке.
Я использовал *.exe | app.config amp; PS | CurrentDomain.AssemblyResolve
логику перенаправления. Но я бы сказал, что это не очень удобно. У меня много разных клиентов, и я не хочу app.config
каждый раз обновлять файлы. Вот почему мне нужно переместить логику перенаправления с клиентов на adapters.dll
. Это просто — мне просто нужно установить AutoGenerateBindingRedirects
false
и написать пользовательскую логику разрешения, подобную этой:
AppDomain.CurrentDomain.AssemblyResolve = CurrentDomain_AssemblyResolve;
private static Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
//...redirecting logic
}
Но дело в том, что я не хочу отключать AutoGenerateBindingRedirects
для всего проекта, потому что возможно, что некоторым другим сборкам может потребоваться автоматическое разрешение.
Есть ли у вас какие-либо идеи, как я могу отключить автоматическое перенаправление привязки для определенного dll
?
Комментарии:
1. У меня такая же проблема. Лучшее решение, которое я придумал до сих пор, — это создать шаг post build, который удаляет перенаправления привязок из конфигурации.
2. Вы нашли решение для этого?? Столкнулся с аналогичной проблемой.
3. @AmitKumar да, я это сделал. НАПИШИТЕ мне. позже я опубликую ответ здесь