問題タブ [maf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3158 参照

c# - AddIn (MAF) : 別のプロセスで実行中

私はWPFホストアプリを持っており、アドインは以下に説明するようにUIを返すWPFでもあります:

[リンク] http://msdn.microsoft.com/en-us/library/bb909849%28v=vs.110%29.aspx

WPF アドインを外部プロセスとしてアクティブ化することさえ可能かどうか知りたいです。WPF アドインは AppDomain 分離でのみ使用されると考えられているようですが、これは私たちのアプリには十分ではありません。アドインが何らかの理由でクラッシュした場合、ホストが常にクラッシュすることは許されません。ロードされたアドインがクラッシュした場合でも、ホスト アプリが実行されるようにします。

以下を使用してこれを達成できることを私は知っていSystem.AddInます:

しかしSystem.AddIn、アドインに WPF UI コンポーネントがあるからではなく、WPF アドインがあります。

次のように、新しいアプリ ドメインで WPFAddIn をアクティブ化できます。

WPF アドインでこの状況を処理するための最新情報を入手できませんでした。別のプロセスで WPF AddIn をアクティブにする方法、またはホストで未処理の例外をキャッチする方法の例はありますか。基本的に、アドインがクラッシュしたときにホストが死ぬのを許すことはできません。次のリンクをたどりましたが、スレッドが非常に古く、現在の情報がないことが判明しました。

[リンク] http://social.msdn.microsoft.com/Forums/vstudio/en-US/3c8592f2-14a6-418b-ab11-6d18096aaa0c/systemaddin-addinprocess-and-wpf?forum=wpf

ホストで例外を処理できれば、それも問題ありません。私の問題を説明しましょう:

私はWPFホスト「A」を持っています。WPFアドイン「B」があります。

ホスト「A」にアドイン「B」をロードしました。アドイン「B」にはクリックボタンがあります。ユーザーがボタンをクリックすると、アドイン「B」でイベントが発生します。そのイベントでは、利用可能な try キャッチはなく、そのイベントからいくつかの null 例外がスローされます。この未処理の例外により、ホスト (WPF アプリも) がクラッシュしました。

ホスト「A」でこの例外を処理し、アドイン「B」をアンロードして、クラッシュすることなくホストを続行できるソリューションを探しています。

AddInSecurityLevel.FullTrustと同様に アドインを試しましたAddInSecurityLevel.Internet

ヒントや例は役に立ちます。

0 投票する
1 に答える
164 参照

c# - コンテナーを使用して .net 3.5 アプリケーション内に .net 4.0 アプリケーションをロードすることは可能ですか?

MEF や MAF などのコンテナーを使用して、.net 3.5 アプリケーション内に .net 4.0 アプリケーションをロードすることは可能ですか?

下位互換性のみが .net でサポートされているという事実を認識していますが、コンテナに違いはありますか?

0 投票する
1 に答える
287 参照

c# - MAF AddInProcess および Telerik RadRibbonView を使用したプラグインで例外が発生する

ホストから分離して WPF プラグインをロードできるようにするために、System.AddIn (MAF) を使用して API を設計しました。

現在、API は AppDomains を使用して分離を提供していますが、AppDomains に関連する制限のため、代わりに AddInProcesses を使用するように実装を切り替えようとしています。次のプロジェクトをテンプレートとして使用しています: http://www.cnblogs.com/Files/sheva/Process.zip

私の最初の実装は問題なく動作しているようで、分離境界を越えて WPF 要素を読み込むことができますが、複雑な Telerik コントロールを読み込もうとすると問題が見つかりました。RadRibbonView、次の例外が発生します:

An exception of type 'System.Runtime.Remoting.RemotingException' occurred in mscorlib.dll but was not handled in user code Additional information: Failed to read from an IPC Port: The pipe has been ended.

0 投票する
0 に答える
129 参照

c# - 未処理の例外の「遅い」処理C#

プラグインの拡張性を提供するために、プロジェクトで MEF を使用しました。これはうまく機能しますが、プラグイン アセンブリをメイン アプリから分離する必要があることに気付いたので、少なくとも、プラグインがクラッシュしてもメイン アプリはクラッシュしません。

残念ながら、これは予想よりも複雑なようです。最適なソリューションを提供するには、MAF と MEF の組み合わせが必要です。

しかし、リソースと時間が不足しているため、少なくとも当面は満足のいく回避策で十分です。

詳細なログ記録のために、すでにAppDomain.CurrentDomain.UnhandledExceptionイベントを使用しています。AppDomainこれで、例外の原因も検出できることに気付きました。この時点でこれらの未処理の例外を実際に処理する方法はありますか?この方法で、外部アセンブリで例外が発生したかどうかを条件付きで確認し、発生した場合は無視して、メイン アプリが影響を受けないようにすることができます。

OFC、提案された代替アプローチも高く評価されます。

0 投票する
0 に答える
213 参照

c# - 実行中のプロセス名の更新

MAFを使用してアプリケーションのアドインをロードし、アドインを独自のプロセスにロードする Token.Activate オーバーロードを活用しています。AddInProcess.exeこれにより、システム内のアドインごとに1 つ読み込まれます。このプロセスが自分のアプリケーションと対応するアドインから来ていることをタスクマネージャーに反映させるためにできることはありますか?

私は PID を持っているので、プロセス名を更新できる Win32 API を呼び出すことができるかどうかを判断しようとしていましたが、私が読んだすべては、プロセス名を更新する方法がないことを示しているようです。私は何かを逃しましたか?

注: アプリケーションにロードされたアドインのリストを維持しているので、アプリケーションでこれらすべてを表示できますが、タスク マネージャーにもう少し多くの情報を表示させるとよいでしょう。

0 投票する
1 に答える
271 参照

c# - アウト プロセス (new AddInProcess()) で実行される WinForm-AddIn をホストしてアクティブ化する方法は?

事実

AddInsMAF を使用して (レガシー WinForm exe の) アウト プロセスを管理するホスト アプリケーションを作成しようとしています (例: Add-ins and Extensibility )

アクティベーションは、次のAddInようにプロセス外で行われます。

プラグインを追跡し、TooStripMenu. ホスト アプリケーションのToolStripMenuitem.Clickイベントは、コントラクトPlugIn.ShowMainDialog()の一部である - メソッドを起動します。AddIn

X プロジェクト (WinForm アプリケーション) は、以下AddInを含むクラスにコントラクトを実装します。

上記のホスト アプリケーションを実行するAddIn X Formと、プロセスがハングし、何が問題なのかを突き止めるのが非常に難しくなります :-(

質問

そこに含まれているnew AddInProcess()ホストに使用する実用的なサンプルはありますか?AddInsWinForms

0 投票する
1 に答える
313 参照

c# - MAF。アドイン側から呼び出す

プラグインを提供するアプリケーションを開発しています。私は目的のために Managed Add-In Framework を使用しています。アドインからホストのメソッドを呼び出す方法はありますか?

0 投票する
0 に答える
72 参照

.net - MAFでプラグインをアクティブ化するときにユーザー資格証明/ユーザー・アカウントを渡す

MAF を使用して外部プラグインをロードし、それらを新しいプロセスとしてアクティブ化します。ホスト プロセスは、ユーザー アカウント svc-host で実行される Windows サービスです。

別のプロセスでプラグインをアクティブ化する可能性はありますが、別のユーザー アカウント (svc-mypluginuser) で実行されていますか?

使用例: プラグインは独自のデータベースに接続します。データベース セキュリティは AD ベースです。各プラグインが独自のデータベースにのみアクセスできるようにする必要があります。

使用するコード:

AddInProcess には、ユーザー資格情報を渡す方法がないようです。