は、私は、Visual Studio 2008、.NET 3.5 SP1を使用して、以下のモジュールを使用してテストアプリケーション持っています:WPFデザイナがアンマネージDLLを呼び出すライブラリをロードできないのはなぜですか?
- C++ DLL
- C++/CLIのDLL#1
- のC#を使用しています
:私は、WPF XAML内のリソースとして#2からのクラスを使用しようとすると、設計者は私をさせません、#2<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:lib1="clr-namespace:ClassLibrary1;assembly=ClassLibrary1" <- ERROR
を使用するWPFアプリケーション
エラー: "アセンブリ 'ClassLibrary1'が見つかりませんでした。アセンブリ参照がないことを確認します。また、プロジェクトと参照されているすべてのアセンブリがビルドされていることを確認してください」
しかし、アプリケーションメインウィンドウのコードビハインドでC++/CLI DLLのクラスを使用すると、すべて正常に動作します。そしてそのコンストラクタでそれがC++ DLL、問題なしに呼び出します。
using ClassLibrary1;
...
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
//use in code-behind
Class1 tmp = new Class1();
tmp.FirstName = "foo";
Title = tmp.FirstName;
}
}
私はC++/CLIのアセンブリを変更する場合は、C++ DLLへの呼び出しを削除して、すべてを再構築し、設計者が文句を停止し、Cをロードする++/CLIアセンブリの不一致なし
この問題は、WPFデザイナーが動的ライブラリ。
回避策がわかりませんが、VS/WPF Designerがアセンブリを一時的な場所にコピーしてそこからロードすると思います。 C++ DLLをコピーしていない可能性があります。 – CodeNaked
私はあなたが非常に近くにいると思うが、それほどではない。アセンブリ(管理されていないものも)は実際にコピーされますが、以下のRickのように、WPFデザイナーはシステムパスのどこかにいなければ見つけることができません。 –