我有以下XAML定义:
xmlns:controls="clr-namespace:MyControls;assembly=MyProduct.MyControls"
假设我的产品已经加载了2次dll MyProduct.MyControls(2个不同的版本)。例如版本1.0和版本2.0。
有没有办法显式解析XAML的程序集“MyProduct.MyControls”?
答案 0 :(得分:2)
根据MSDN(http://msdn.microsoft.com/en-us/library/ms747086.aspx#Mapping_To_Custom_Classes_and_Assemblies),您可以使用AssemblyName语法指定程序集的全名:
xmlns:controls="clr-namespace:MyControls;assembly=MyProduct.MyControls, Version=1.0.0.0, Culture=en, PublicKeyToken=xyz"
答案 1 :(得分:0)
根据this,你不会成功。
我只是得到XAML解析器会故意阻止您使用多个版本的相同程序集的确认,这意味着如果旧版本的程序集已经存在,即使您的XAML文档试图引用,WPF也会尝试使用该程序集一个新版本。
答案 2 :(得分:-1)
通过阅读MSDN网站上的此链接, 看起来您使用AssemblyName来加载程序集,因此可能是您使用MyProduct.MyControlsV1编译不同版本的情况,例如AssemblyInfo.cs中的名称。
所以路径会变成
xmlns:controls="clr-namespace:MyControls;assembly=MyProduct.MyControlsV1"
xmlns:controls="clr-namespace:MyControls;assembly=MyProduct.MyControlsV2"