問題タブ [assemblybinding]
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.
.net - 複数の実行可能ファイルに対してassemblyBindingを1回構成します
複数の実行可能ファイルを含むフォルダーがあります。現在、アセンブリバインディングリダイレクトは各executable.exe.config
ファイルで構成されています。これを一度だけ構成し、そのフォルダー内のすべての実行可能ファイルがこれを自動的に取得する方法はありますか?これはコンピューター全体に適用されるため、machine.configは避けたいと思います。
.net - .NET アセンブリ バインディングのデバッグ aka が使用されている dll とその理由を見つける
参照されている dll が実行時に読み込まれる際に、謎のバージョンの不一致が発生しています。
次のようなエラー:
ファイルまたはアセンブリ X、またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
アセンブリ バインディングをデバッグする方法はありますか。
つまり、読み込まれたアセンブリに関する次の詳細を知るにはどうすればよいですか。
- バージョン
- 位置
- 読み込みの原因 (私のコード、別の .dll、...)
- まあ、他に知っておくべきことはほぼすべて...
asp.net - Web サイトをホストしている仮想マシンで、指定されたモジュールが見つかりませんというエラーが発生しました
ASP.NET 3.5 Web サイトを実行している Windows Server 2003 仮想マシンの奇妙な状況にリモートで対処してきました... または、少なくともそれを実行しようとしています。
Web サイトは、プロジェクトの標準インストーラーを使用してインストールされました。このインストーラーは、いくつかの異なる場所にインストールするために使用されています。ただし、これは動作が異なります。
Web サイトを実行すると失敗します。イベント ビューアーで、次のエラーが報告されます。
例外情報: 例外の種類: HttpException 例外メッセージ: 指定されたモジュールが見つかりませんでした。(HRESULT からの例外: 0x8007007E)
エラーは Web サイトで次のように報告されています。
例外の詳細: System.IO.FileNotFoundException: 指定されたモジュールが見つかりませんでした。(HRESULT からの例外: 0x8007007E)
Fusion ログ ビューアーを実行すると、ASP.NET が次のアセンブリを読み込もうとしていることがわかります。
CppCodeProvider、バージョン = 8.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b03f5f7f11d50a3a VJSharpCodeProvider、バージョン = 2.0.0.0、カルチャ = ニュートラル、PublicKeyToken = b03f5f7f11d50a3a
まず、ASP.NET がこれらのアセンブリをロードする必要がある理由はありません。これらのアセンブリが必要に応じてリストされている machine.config またはその他の構成のどこにも見つかりません。3.5 SDK をインストールしようとしましたが、どちらもインストールされませんでした。私の開発マシンにはバージョン 10 の CPPCodeProvider しかありません。
ここで一体何が起こっているのですか??
注意: 大雑把な Google 検索と回答を行わないでください。私が見つけたものは何も当てはまりません。そして誰かが答えたら
「DEBUG定数の定義」と「TRACE定数の定義」
私はインターチューブを通してあなたを殴るつもりです。
webforms - PortableLibraryファイルまたはアセンブリを読み込めませんでした
PortableLibraryプロジェクトを参照するasp.net4webformsWebサイトがあります。Webサイトでは、PortableLibraryからクラスをシリアル化します。IIS6を使用してプロジェクトをWebサーバーマシンにデプロイすると、次のエラーが発生します。
ポータブルライブラリプロジェクトはSystem.Xml(v4.0.31029)を参照します。
文字列オブジェクトを単純にシリアル化するだけで、参照なしでクリーンなプロジェクトをデプロイしようとすると、正常に機能しました。
Web構成でアセンブリバインディングを試しましたが、成功しませんでした。
なぜこのエラーが発生するのですか?system.xmlの「2.0.5.0」バージョンがどこから来るのかわかりません。
c# - 実行時にSystem.Data.SqlServerCe4.0.0.0をバージョン4.0.0.1と交換することは可能ですか?
私のアプリケーションは、依存関係としてSystem.Data.SqlServerCe4.0.0.0を持つライブラリプロジェクトを参照しています。
アプリをプライベートデプロイしようとしていますが、System.Data.SqlServerCe4.0.0.1が必要です。
そこで、System.Data.SqlServerCe 4.0.0.1が出力ディレクトリ(実行可能ファイルと同じフォルダー)にコピーされるようにアプリを設定し、AssemblyBindingをApp.configファイルに追加しました。
残念ながら、次のエラーが発生します。
ファイルまたはアセンブリ'System.Data.SqlServerCe、Version = 4.0.0.0、Culture = neutral、PublicKeyToken=89845dcd8080cc91'またはその依存関係の1つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULTからの例外:0X80131040)
質問
実行時にSystem.Data.SqlServerCe4.0.0.0をバージョン4.0.0.1と交換して、プライベート展開を可能にすることは可能ですか?
c# - 既定のアセンブリ バインド動作
アセンブリに格納される API を構築しています。それを MyAssembly.dll と呼びましょう。
このアセンブリの AssemblyVersion は 1.0.0.0 です
アセンブリの新しいバージョンをリリースすると、アセンブリのバインドが失敗するため (bindRedirect などの追加のヘルプなしで)、1.0.0.0 バージョンを参照してコンパイルされた以前のコードが壊れることが予想されます。
実際には、バインドが実際に成功していることがわかります。
さまざまなバージョンの MyAssembly.dll を作成し、1.0.0.0 を参照するさまざまなコードを実行してテストしました。
これはデフォルトの動作ですか?EXACTバージョンへのバインディングは、厳密な名前の (署名された) アセンブリからのみ発生しますか?
ありがとう。
visual-studio-2010 - NGEN されたアセンブリが読み込まれない
アセンブリを NGEN する場合とそうでない場合のパフォーマンスへの影響を測定しようとしていますが、実行可能ファイルに NGEN アセンブリをロードさせることができません。VS2010 コマンド プロンプトから次のコマンドを実行しました。
これは問題なく完了し、すべての依存関係アセンブリが C:\Windows\assembly\NativeImages_v4.0.30319_32\MyCompanyName# ディレクトリに作成されていることを確認しました。
その後、アプリを起動して Process Explorer を見ると、NativeImages_x フォルダーから *.ni.dll ファイルを読み込むのではなく、ローカル バイナリ ディレクトリからすべてのアセンブリを読み込んでいました。fuslogvw を使用してバインディングをログに記録しました。サンプル ログ エントリは次のとおりです。
ここで何が起こっているのかについて考えている人はいますか?問題のネイティブ アセンブリが次の場所に存在することを確認しました。
正しくバインドされていないのはなぜですか?FWIW、アプリケーションは MEF をかなり使用します。それがアセンブリの読み込みに影響するかどうかはわかりません。
c# - ConfigurationManager.OpenMappedExeConfiguration.GetSection() が失敗します (最近発生し始めたばかりです)
最初に、非常に長い質問について事前にお詫びさせてください。最後までたどり着いた人を称賛します。
クラス ライブラリは別のプログラム (ArcMap.exe) へのアドインであるため、GAC にインストールされていない C#/.NET 3.5 クラス ライブラリがあります。プログラムは実際には、起動時にアーカイブから .dll をユーザーの Local Settings\Application Data フォルダーの下のフォルダーに抽出しますが、.dll を使用して実行時にその場所を取得できますthis.GetType().Assembly.Location
。
ライブラリにはCustomConfigSection
、.config ファイルで参照されるというクラスがあります。
LoadConfigSection()
ライブラリには、.config ファイル (ユーザーの Application Data フォルダーに格納されている) から読み取りConfigurationManager.OpenMappedExeConfiguration()
、 -- を使用して返すメソッドを持つクラスがありますCustomConfigSection
。何が起こるかというと、 my を含むアセンブリが見つからないGetSection()
という厄介なメッセージがスローされます。ConfigurationErrorsException
CustomConfigSection
厄介なのは、これが 2 日前に機能していたことです。Windows Updateがこれを壊したと思います。戻って、以前のバージョンのコードを試してみましたが、問題なく動作していましたが、役に立ちませんでした。私のコードではなく、環境で何かが変わったのですが、それが何であれ、他のマシンでも起こっているので、それは私だけではありません!
.config ファイルの例を次に示します。
そして、私がそれを読むために使用しているコード(私が言及したように、2日前に完全に機能しました):
m_userConfigFilePath
は .config ファイルへの有効なパスであり、Configuration
オブジェクトのHasFile
プロパティは true です。
Fusionアセンブリ バインディングのログ記録を有効にした後に表示されるエラーは次のとおりです。
そして、Fusion はバインディング ログ自体に失敗しました。
明らかに、間違った場所からConfigurationManager
私を含むアセンブリを探してCustomConfigSection
います.なぜこれが最近起こったのかはわかりませんが、2〜3日前にたくさんのWindows Updateをインストールしました. Windows XP Pro SP3 32 ビットを実行しています。
これらすべての用語の意味を完全に理解していなくても、Fusion ログを見ると、ロード コンテキストまたはポリシーを変更して、強制的にアセンブリを正しい場所からロードできるのではないかと期待できます。それは本当ですか?
asp.net - asp.net の dll バインディング (dll のバージョン管理)
これが非常に基本的な質問であることは承知していますが、今までこの問題に直面したことがありませんでしたので、助けを求めています。
同じ名前 (example.dll) の 2 つの dll ファイルがありますが、幸いなことに差分バージョン番号は 1.0.3180.20767 と 1.0.2490.20011 です。これらの dll の両方を同じプロジェクトで使用したいと考えています。
それらをどのように使用しますか?- 「参照の追加」をクリックするだけでは、次のメッセージが表示されて失敗します
「example1.dll」と「example2.dll」という名前になるようにファイルの名前を変更できますが、それでよろしいですか? これを行うより良い方法はありますか。
助けてくれてありがとう!
clr - 環境変数を使用して、コードベース要素の href 属性のハードコードされたパスを置き換えることができますか
CLR が特定の場所からアセンブリをロードできるかどうかに興味がありました。これは、基本的に C:\MyAssemblies フォルダーからアセンブリをロードすることがわかったものです。
さて、私の質問は - 次の href 属性で環境変数を使用することは可能ですか? つまり、 c:\ の代わりに %windir% のようなことを言うことは可能ですか?
私はおそらく、必要なことにGACを使用するつもりですが、このコンテキストで環境変数を使用することさえ可能かどうか疑問に思っていました. ありがとう。