У меня есть приложение с именем Application.exe
.Я использую его для показа документов другого типа.Каждый шаблон типа документа представляет собой один dll-файл с пользовательскими элементами управления wpf и бизнес-логикой внутри.Поэтому, когда я запустил свое приложение, я загружаю xml-файл и Template.dll
, а затем показываю некоторую wfp-форму для работы.Мои Application.exe
и Template.dll
оба используют некоторую сборку с именем Application.CustomControls.dll
.Я включаю его в проект установки для приложения, поэтому Application.CustomControls.dll
уже находится в домене приложения, когда мой Application.exe
пытается показать документ.
Теперь мой клиент требует изменить имя Application.CustomControls.dll
на CustomControls.dll
.Не спрашивайте, пожалуйста.Просто имя файла сборки, а не пространство имен или что-то еще.Я могу сделать это для применения без проблем.Я могу перестроить решение и создать проект установки с новым именем dll-файла.Но я не могу открыть старые шаблоны, если они все имеют старое имя внутри.Особенно в xaml, например:
xmlns:Controls="clr-namespace:CustomControls.Design;assembly=Application.CustomControls"
Я не могу просто перестроить все шаблоны.Это будет сделано, но в prod всегда найдется время, когда некоторые пользователи забыли обновить свою программу и так далее.Таким образом, либо старое приложение не может открыть новый шаблон, либо новое приложение не может открыть старый шаблон.Я не изменил пространство имен или версию Application.CustomControls.dll
просто имя.Могу ли я как-то решить эти проблемы и заново связать ссылку на сборку внутри приложения?С AppDomain.AssemblyResolve
событием или конфигурационным файлом?