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 を使用してアセンブリをロードしているように見えるため、たとえば、AssemblyInfo.cs の名前として MyProduct.MyControlsV1 を使用してさまざまなバージョンをコンパイルする場合が考えられます。

したがって、パスは次のようになります

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