問題タブ [external-assemblies]
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.
c# - C#での外部アセンブリのシリアル化と逆シリアル化
プラグインシステムを作成しました。プログラムを再起動しても機能し続けることができるように、プロパティを保存/ロードしたいと思います。バイナリシリアル化を使用しています。問題は、それらをシリアル化することはできますが、逆シリアル化することはできないということです。デシリアライズ中に「アセンブリが見つかりません」という例外がスローされます。シリアル化されたデータを復元するにはどうすればよいですか?
c# - .NET アセンブリ参照 101
アセンブリ A に次のクラスがあります。アセンブリには StructureMap 2.6.1 への参照があります。
まったく別のアセンブリ (B) でアセンブリ A を参照しています。この行が呼び出されると、次のランタイム エラーが発生します。
実行時エラーは次のとおりです。
FileNotFoundException: ファイルまたはアセンブリ 'StructureMap、Version=2.6.1.0、Culture=neutral、PublicKeyToken=e60ad81abae3c223' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
StructureMap.dll をアセンブリ B の bin ディレクトリに常にコピーする必要があります。これは非常に面倒です。これを解決する方法について何か提案はありますか? AssemblyA によって参照されるアセンブリが AssemblyB によって必要とされる時期に関する一般的なルールを知っている人はいますか?
ありがとう!
素早い返信ありがとうございます。StructureMap を参照として単純に追加することを考えました。しかし、私が設計で目指していた角度は、基盤となる実装を消費者から切り離すことでした。つまり、アセンブリ B は、StructureMap が最終的に使用されているという事実を認識しません。また、GAC StructureMap を使用すると、展開の問題が発生しますよね? グローバル キャッシュに StructureMap を持たないホスト マシンにサイトをデプロイすると、振り出しに戻ります。このアセンブリ参照の問題を考えると、真の抽象化がどのように実現されるのか興味があります。
c# - コードによって参照されていないが、ビンにある必要がある依存関係DLLを処理するにはどうすればよいですか?
私はサードパーティアプリケーション用の一連のプラグインを開発しています。ベンダーは、システムを操作するためのいくつかのヘルパーアセンブリとともに、すべてのプラグインアセンブリを提供しています。
私たちのコードは通常これらのヘルパーアセンブリを参照しますが、それらのプラグインアセンブリは外部のbin/debugまたはbin/releaseディレクトリにコピーする必要があります。通常、これはメインプロジェクトでビルド後のイベントにしますが、このプロジェクトは独自の依存関係を持つ個々のプロジェクトのコレクションであるため、どうすればよいかわかりません。
Visual Studioでこの状況を処理するための推奨事項(またはベストプラクティス)は何ですか?
external-assemblies - DLL は Web ベースのアプリでは機能しますが、スタンド ウィンドウ アプリでは機能しません
最もよく使用する関数と拡張機能のいくつかを取り上げて DLL に入れ、その DLL を任意のプロジェクトに含めることができるようにしました。これは Web ベースのプロジェクトでは問題なく機能しますが、スタンドアロン アプリではエラーがスローされます。アセンブリ名でインポートを行います。関数とメソッドを確認できますが、実行しようとすると次のようになります。
{関数名} が宣言されていません。保護レベルにより、アクセスできない場合があります。
何かご意見は?
dll で、いくつかの文字列といくつかの system.web.ui.webcontrols オブジェクトの拡張を行っているためかどうか疑問に思いました。dll で System.Web.UI.WebControls のインポートを行っているため、これが問題になるとは思いませんでした。
visual-studio-2010 - 参照されるアセンブリに対してVisualStudioビルドの出力場所を指定するにはどうすればよいですか?
.NET3.5プロジェクトと4.0プロジェクトを組み合わせたソリューションがあります。3.5プロジェクトは、外部の依存関係のためにアップグレードできません。
ソリューションは単純なプラグインメカニズムを使用し、すべてのプロジェクトの出力パスをソリューションフォルダー内の共通のbinフォルダーに設定して、デバッグ時にプラグインアセンブリを検出してロードできるようにしました。
サードパーティのアセンブリを参照する.NET3.5プロジェクトと、3.5バージョンと同じファイル名を持つ同じアセンブリの4.0バージョンを参照する.NET4.0プロジェクトがあります。ビルドすると、サードパーティアセンブリの一方のバージョンがもう一方のバージョンを上書きします。
これらの依存関係を別のサブフォルダーに出力して、構成でプロービングプライベートパスを設定できるようにしたいのですが、ビルドプロセスでこれを行う方法がわかりません。
asp.net-mvc - 外部アセンブリにあるMVC3コントローラーでNinjectを使用する
MVC contribのポータブル領域を使用する外部アセンブリにMVC3コントローラーがありますが、Ninjectにコンストラクターの依存関係を挿入させるのに問題があります。
コントローラは見つかりましたが、「このオブジェクトにパラメータなしのコンストラクタが定義されていません」という例外が発生します。ninjectのコントローラーファクトリが呼び出しスタックで呼び出されていることがわかりますが、外部アセンブリの場合は、データベースセッションを通過しません。
なぜこれができるのでしょうか?
asp.net-mvc - mvc3razorページに名前空間が見つかりません
似たような質問をたくさん読んでいますが、特定の問題を解決できません... MVC3プロジェクトでは、外部ライブラリを使用しています。このライブラリはどこでも使用できますが、かみそりのビューでは使用できません。そこで、SOに関する同様の質問を読んで、このライブラリをセクション
に登録する必要があることがわかりました。<system.web><compilation><assemblies>
これを行おうとすると、web.configの一部が次のようになりました。
しかし、それでも機能しません...より正確には、これは実行時にすべてのプロジェクトを分割しました。プロジェクトを起動するとクラッシュし、Impossibile to load assembly 'MailBee.Net.dll, Version=7.1.4.348, Culture=neutral, PublicKeyToken=cd85b70fb26f9fc1' or one of its dependency
dllは確かにWebアプリケーションの/ binフォルダーにあり、web.configファイルの宣言を削除すると、ビューページを除くすべてのプロジェクトで使用できます。何か案が?
c# - WPF のチェーン参照アセンブリ
今日は、チェーン内の追加のアセンブリを参照する C# WPF でプロジェクトを構成する方法を知りたいと思います。「チェーン内」とは、次のようなことを意味します。
- アセンブリプラグインを参照するアプリケーションがあります
- プラグイン アセンブリは、プラグインによって使用されるリソースが配置されているリソースを参照します。画像
- メイン アプリケーションはリソースをまったく参照しません。
次の図は、私が今言ったことを示しています。
問題は、リソースがアプリケーションの bin フォルダーにコピーされず、必要なプラグイン (画像の Ctrl) リソースの検出に失敗することです。
回避策
メイン アプリケーションの参照にリソースを含めるか、ビルド後の手順を使用してその手順で必要なファイルを手動でコピーするだけの回避策があります。
結論
最後に、その問題にどのように対処していますか。回避策のセクションで述べた以外の解決策はありますか? プロジェクトの構成に何か不足していますか?
.net - CodeBaseからロードされた.NETアセンブリはどこに行きますか?
アプリケーション構成で<codebase>要素を使用して外部の場所からdllをロードしています。アセンブリがインスタンス化される場所を知りたいですか?
ローカルドライブ(appbaseの外部)とネットワーク共有ドライブを指すように<codebase>を作成し、fuslogvwとプロセスモニターを実行して何が起こっているかを確認しました。しかし、私は内部で実際に何が起こっているのかを知ることができませんでした。
以下のリンクは、ユーザーに固有のアプリケーションキャッシュに移動するときに説明します。 http://msdn.microsoft.com/en-us/magazine/cc164080.aspx
以下のリンクは、特別なGACキャッシュに移動する際の説明です。 http://www.developer.am/c-net-platform/?page=understanding-the-codebase-element
全体的に、キャッシュの場所にロードする必要があることは理解していますが、確認できませんでした。助けてください。ddlがロードおよび保存される正確な場所を知りたいです。
ありがとうございました