問題タブ [assembly-resolution]
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# - IIS CGI プログラムでアセンブリ バインド エラーが発生するのはなぜですか
XP Pro SP3 の IIS で CGI アプリケーションとして実行されている C# プログラムがあります。ライブラリ アセンブリ クラスを参照してプログラムのコードで使用するまでは、正常に動作します。CGI プログラムを手動で実行すると、読み込まれて実行されます。しかし、IIS によって実行されると、参照されたアセンブリは、親の実行可能ファイルと同じディレクトリにあるにもかかわらず、バインドに失敗します。これが私が得るバインディングログです:
Appbase は正しいです (ただし、URI の「?」は何ですか????? おそらくそれがヒントです)。アセンブリ voevent.dll は、MsgChkCGI.exe と同じディレクトリ (Appbase!) にあります。そして、exeをダブルクリックするだけで、正しく起動します(CGI環境変数がないためにエラーが発生しますが、これは予想どおりです)。
何が起こっているか知っている人はいますか?
nhibernate - NHibernate 2.1.1.4000 用の NHibernate 第 2 レベルのキャッシュ プロバイダー
NHibernate 2.1.1.4000 に対してビルドされた s#arp を使用していますが、NHibernate.Caches.SysCache を第 2 レベルのキャッシュとして使用したいと考えています。ただし、Nhibernate contrib キャッシュは NHibernate 2.1.2.4000 に対して構築されているため、明らかに問題が発生します。
NHibernate 2.1.1.4000 に対してビルドされた NHibernate.Caches.SysCache.dll をダウンロードできる URL を教えてください。
または、実装が簡単で、NHibernate 2.1.1.4000 に対して構築された別の第 2 レベルのキャッシュ プロバイダーがありますか?
ありがとう
.net - Hibernate と Windsor のアセンブリの競合
Hibernate と Windsor を連携させるのに問題があります。私のセットアップの詳細は次のとおりです
2 つのプロジェクトがあります
-DomainModel
-MVCApp
NHibernate 2.1.2 と Windsor 2.1.1
をダウンロードし
ました
。
DomainModel で Lazy_loading を含むファイルに
Castle.Core - 1.1.0.0
Castle.DynamicProxy2 - 2.1.0.0
NHibernate.ByteCode.Castle
- 2.1.2.4 MVCApp
には次の参照があります
。 0.6655
Castle.DynamicProxy2 - 2.2.0.6628
アプリを実行すると、エラーが発生します:
ファイルまたはアセンブリを読み込めませんでした 'Castle.DynamicProxy2, Version=2.1.0.0, Calling assembly: NHibernate.ByteCode.Castle, Version=2.1.2.4000
MVC bin フォルダーには Castle.DynamicProxy2 - 2.2.0.6628 バージョンがあるため、古いバージョンが要求された後のエラーです。
これを機能させるにはどうすればよいですか?何が欠けているか、間違って含まれていますか? 助けてください..ありがとう。
c# - ILMergeを使用せずにアセンブリをコンソールアプリケーションに埋め込むにはどうすればよいですか?
これについてはここにたくさんの投稿があります。私は別のSO投稿からこのコードを使用し、Main()メソッドにデリゲートの割り当てを配置しています。他の投稿はどれも私の質問に直接答えていません。
サードパーティのアセンブリをリソースとして埋め込んでいますが、アプリを起動すると次のようになります。
- FileNotFoundExceptionの内部を持つTypeInitializationExceptionが発生しています。ファイルシステムでアセンブリを見つけようとして失敗します。
- AssemblyResolveのイベントハンドラーが割り当てられているMainメソッドに到達することはありません。
Resources.resxに埋め込まれている2つのアセンブリ参照があります。1つはサードパーティツール(コマンドラインパーサー)で、もう1つはアプリケーションの要点が存在するライブラリファイルです。
たぶん、これはコンソールアプリでは不可能ですか?ありそうもないようですが、私はそれを回避する方法がわかりません。
Re:ILMergeなど:ツールを使用せずに、これを完全にコードで実行したいと思います。理由:リポジトリにソースコードを入れたくないので、他のチームメンバーがおそらくまだ持っていないツールをインストールする必要があります。それが不可能な場合、ILMergeは次善の選択肢のように見えます。
asp.net - 一定時間後にアセンブリ FileLoadException (アクセスが拒否されました)
しばらく (数日間) 正常に動作する Web アプリケーションがあり、その後、外部 dll を参照するクラスをインスタンス化するときに FileLoadException をスローし始めます。
- Assembly静的メソッドを使用してアセンブリを明示的にロードしていません。参照されたライブラリからクラスをインスタンス化するクラスをインスタンス化しているだけです。
- Process Monitor を実行して、アプリケーション パスを監視しました。エラーが発生したソースコードファイルに対して「PATH NOT FOUND」という結果しか得られません(デバッグモードでコンパイルされているため、これはスタックトレースをダンプするときにエラーが発生した行を表示しようとする.NETの一部にすぎないと思います)
- これは、社内の専用サーバーで実行されています。アプリケーションは、同じ参照 dll を使用して構築された別の Web サイトと共に、.NET 3.5 アプリケーション プールで実行されています。他の Web サイトにはより多くのトラフィックがありますが、このエラーは発生しません。
- アプリケーションは 3 つの Web サーバー間で負荷分散されており、3 つすべてである時点でこの問題が発生します。
Web サーバーの 1 つで、アセンブリ バインディングのログ記録をオンにしました。スタック トレースは次のようになります。
私はファイル ロードの例外のデバッグにあまり詳しくないので、どんな助けでも大歓迎です (デバッグのために他に何ができるかなど)。
ありがとう。
c# - AssemblyName.ReferenceMatchesDefinitionはどのように機能しますか?
次のコードが与えられます:
これらのチェックの両方が「True」を出力するのはなぜですか?AssemblyName.ReferenceMatchesDefinitionは、アセンブリ名のバージョン、カルチャ、および公開鍵トークン属性の違いを考慮する必要があると思いましたね。
そうでない場合、ReferenceMatchesDefinitionは、単純な名前の比較ではできないことを何をしますか?
.net - .NET アセンブリの読み込みの問題
私は、ASP.Net アプリケーション、2 つの異なる Win32 サービス、およびその他の sysadmin 関連アプリケーションで構成されるアプリケーションのビルド プロセスを維持しています。
デバッグと展開の両方で使用される次の構成で終わりたいと思います。
問題は、app.config 内の privatePath をプローブするアセンブリが、アプリケーション ルート外の相対ディレクトリをサポートしていないことです。つまり: ../libraries は使用できません。とてもイライラします...
アセンブリに厳密な名前を付ける場合、絶対パスをサポートしているように見える codeBase 構成要素を使用できますが、各アセンブリを個別に指定する必要があります。
また、AppDomain.AssemblyResolve イベントにフックしようとしましたが、Main() でイベント ハンドラーを登録する前に、.Net Fusion から FileNotFoundException を取得しています。
アセンブリを GAC に登録するという考えは好きではありません。アプリケーションのデプロイ / アップグレードに手間がかかりすぎます。
必要な各アセンブリのパスを指定せずにこれを行う別の方法はありますか?
.net - 利用できなくなったプラグインで定義された型の処理
ユーザーが「プロジェクト」を維持および保存できる.NETフレームワークアプリケーションを開発しています。プロジェクトは、フレームワーク自体のアセンブリや、まだビルドされていないプラグイン アーキテクチャを介してフレームワークで使用できるようになるサード パーティのアセンブリで型が定義されているコンポーネントで構成できます。プロジェクトが保存されると、単純にファイルにバイナリ シリアル化されます。
プロジェクトは移植可能であるため、複数のユーザーが同じプロジェクトをフレームワークの独自のインスタンスにロードできます (異なるユーザーが MSWord のローカル コピーで同じ MSWord ドキュメントを開くことができるのと同じように)。さらに、あるユーザーのフレームワークで使用できるプラグインが、別のユーザーのフレームワークでは使用できない場合があります。
ユーザーが、(フレームワーク バージョンの非互換性またはプラグインの不在のいずれかの理由で) 定義アセンブリが見つからない型を含むプロジェクトを開こうとした (つまり、逆シリアル化した) ときに、プロジェクトが引き続き動作することを保証する何らかの方法が必要です。開きますが、問題のあるタイプが何らかの形で置換または省略されています。問題は、私がこれまでに行った調査では、適切なアプローチのヒントすら得られないことです。どんなアイデアでも大歓迎です、ありがとう。
.net - アセンブリ参照を追加するには、ベース アセンブリも参照する必要があります
別のアセンブリで定義された親から派生した子クラスを持つアセンブリを作成しました。
子への参照を追加すると、Visula Studio では親への参照も追加する必要があります。
その理由と、機能を失わずに防止するにはどうすればよいですか?
asp.net-mvc - ヘルプSystem.Web.Compilation.BuildManagerは、参照されていないアセンブリでタイプを検索します
ASP.NETが認識していないフォルダーにアセンブリをドロップできるプラグインシステムを作成しようとしています。このプラグインシステムは、ASP.NET MVCベースのアセンブリでは正常に機能しますが、旧式のWebFormアセンブリ(派生クラスのファイル)では.aspx
、ファイルを動的アセンブリにコンパイルする必要があります。Inherits
System.Web.UI.Page
System.Web.Compilation.BuildManager
.aspx
私の問題はBuildManager
、プラグインフォルダ内のアセンブリについて何も知らないことであり、それを支援するために私ができることはまったくないようです。私が行った場合:
投げます。最初にへの参照を取得してからType
試してみる場合:
type
ファイルをコンパイルするために必要な特定のものを渡したにもかかわらず、それでもスローされ.aspx
ます。BuildManager
ファイルをコンパイルするために必要なタイプを見つけるために私ができることはあり.aspx
ますか?
更新:BuildManager.GetType()
実際
に何をしているのかを調べることで、さらに一歩進んだ。タイプが定義されているアセンブリ(「PluginAssembly.DefinedType、PluginAssembly」など)を指定し、System.AppDomain.CurrentDomain.AssemblyResolve
イベントにフックすることで、プラグインアセンブリを見つけて返すことができるので、BuildManagerはタイプを正常に構築できます。これにより、フライングカラーで次のように機能します。
ただし、これはまだ失敗します。
ファイルのディレクティブ.aspx
に同じアセンブリ参照が含まれていますが、次のようになります。Inherits
私が受け取るエラーは次のとおりです。
「コンパイラエラーメッセージ:CS0234:タイプまたは名前空間の名前'DefinedType'は名前空間'PluginAssembly'に存在しません(アセンブリ参照がありませんか?)」と次のソース出力があります。
内部で起こっていることは、私のアセンブリを見つけられないことによってこの例外をスローする責任があるかもしれないBuildManager.CreateInstanceFromVirtualPath()
という特定のことを含んでいるようです。System.Web.Util.IWebObjectFactory
このインターフェースは問題なく実装できますが、それについてわからない場合はどうBuildManager
なりますか?