2012-02-06 10 views
0

アクティビティライブラリプロジェクトを作成しました。次に、私はプロジェクトでいくつかのワークフローを作成しました。主に入力引数と出力引数のデモンストレーションです。これらをツールボックス内の再利用可能なコンポーネント(アクティビティ)として認識し、いくつかのFlowChartアクティビティでいくつかを使用しました。これはコンパイルされた方法でうまく動作します。ただし、XAMLからワークフローを読み込んで実行するとき、プロジェクト内のアクティビティへの参照に失敗します。 XAMLからワークフローをロードして実行する際に、同じプロジェクトから順番に再利用活動に何をすべきかプロジェクト内アクティビティを参照してXAMLをロードして実行

答えて

2

私はあなたの問題は、あなたがのxmlnsアクティビティを作成することにあると思われる:地元のproperyは、唯一の名前空間名をアセンブリ名が含まれていません。つまり、XAMLファイルを読み込むと、ランタイムは現在実行中のアセンブリで名前空間が見つかったとみなします。これは、アプリケーションからアクティビティー・ライブラリーを参照しているときの誤った前提です。

問題を解決する2つの方法があります。

1)手動で「; assembly = MyActivityLibrary」をxmlns:localプロパティ(XAMLファイルの先頭)に追加できます。これは簡単ですが、Visual StudioでXAMLを変更した場合は、毎回変更をやり直す必要があります。

2)XamlServices.Loadを呼び出すと、XamlXmlReaderSettings型の2番目のパラメータを渡して、LocalAssemblyプロパティをアクティビティライブラリアセンブリとして指定できます。これはもっと安定したアプローチになるだろう。 XAMLファイルを手動で編集する必要はありません。

+0

ありがとうございます。私は今理解していると思う。カスタムアクティビティを参照するために、XAMLを即座に読み込んでコンパイルする場合でも、アセンブリ内にアセンブリを含める必要があることを説明していますか?すぐに使えるアセンブリ以外のものの展開を避けることを望んでいました。カスタムアクティビティを最小限のアセンブリに配置する必要があるようで、XAMLが読み込まれてコンパイルされるときに、現在のプロセスで使用できるようにする必要があります。それは正しいと思いますか? –

+0

私はそれに明確に答える前に、私があなたのシナリオを理解していることを確認してください。コンパイルされていないXAMLに保存する必要のあるカスタムアクティビティがいくつかあります。また、コンパイルされていないXAMLに保存するワークフローもあります。標準WF以外のアセンブリを必要とせずに、実行時にカスタムワークフロー(つまり、カスタムアクティビティを参照する)をロード/コンパイルできるようにする必要があります。これはすべて正しいですか? – EverPresent

+0

これは100%BINGOです –

関連する問題