WPF,第三方控件的多个版本

时间:2017-09-19 14:01:55

标签: c# .net wpf redirect .net-assembly

我有一个WPF应用程序,它在许多项目中使用各种第三方控件。在其中一个项目中,我需要将特定控件升级到最新版本,同时保留其他项目网格控件与早期版本完好无损。任何人都可以推荐文章,示例代码等,其中显示了如何做到这一点?简而言之,我需要做这样的事情:

  • MainAppModule.csproj,引用并部署所有共享dll到... \ lib文件夹
    • ModuleA.csproj,引用ThirdParty.dll,v1.0
    • ModuleB.csproj,引用ThirdParty.dll,v2.0

程序集绑定是否重定向到此处需要的内容?如果是这样,它将如何设置?

1 个答案:

答案 0 :(得分:0)

我不知道你的意思是装配绑定重定向...

我不确定这是否适合您,因为两个程序集都将具有相同的命名空间...

但您可以使用自定义AppDomain.CurrentDomain.AssemblyResolve进行尝试。当即将创建或使用classstruct时,将调用此事件处理程序,并且此类型的程序集当前不可用。 因此,首先必须将这些程序集移出项目的默认解析路径,以便调用此事件处理程序。当它打电话通知您需要这两个版本中的一个时,通过查看ResolveEventArgs.Name您将知道需要哪个版本。然后加载此程序集并从事件处理程序返回它。

请务必检查事件处理程序是否完全调用两次,以便加载两个版本......