我有一个名为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"
我不能只重建所有模板。可以完成,但是在生产中,总会有一些用户忘记升级其软件等的时间。因此,要么旧应用程序无法打开新模板,要么新应用程序无法打开旧模板。
我没有更改名称空间,也没有更改版本Application.CustomControls.dll
的名称。我能以某种方式解决这些问题并重新绑定应用程序内部的程序集链接吗?使用AppDomain.AssemblyResolve
事件还是配置文件?