2

我有以下 XAML 定义:

xmlns:controls="clr-namespace:MyControls;assembly=MyProduct.MyControls"

假设我的产品将 dll MyProduct.MyControls 加载了 2 次(2 个不同的版本)。例如版本 1.0 和版本 2.0。

有没有办法为 XAML 显式解析程序集“MyProduct.MyControls”?

4

3 回答 3

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"
于 2013-03-15T13:44:48.450 回答
0

那么根据这个你不会成功。

我刚刚得到确认,XAML 解析器会故意阻止您使用相同程序集的多个版本,这意味着如果旧版本的程序集已经存在,即使您的 XAML 文档正在尝试引用新版本,WPF 也会尝试使用该程序集.

于 2013-03-15T13:44:17.143 回答
-1

通过阅读MSDN站点上的此链接,您似乎使用 AssemblyName 来加载程序集,因此您可能会使用 MyProduct.MyControlsV1 作为 AssemblyInfo.cs 中的名称来编译您的不同版本。

所以路径会变成

xmlns:controls="clr-namespace:MyControls;assembly=MyProduct.MyControlsV1"
xmlns:controls="clr-namespace:MyControls;assembly=MyProduct.MyControlsV2"
于 2013-03-15T13:44:01.230 回答