問題タブ [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.
c# - アセンブリの複数の異なるバージョンを参照するアプリケーションを実行しています
EF4とEF5のパフォーマンスを比較するテストプロジェクトを作成しています。正しいEFバージョンを参照するEFバージョンごとに個別のdllを作成できるようにしたいのですが、単一の実行可能ファイルからテストを起動できるようにしたいのですが、現時点では、これはEFdllのコピーがexeディレクトリに2つあることを意味します。これは良くありません。
プロービングと呼ばれるものを使用して、どういうわけかdllの複数のバージョンを持つことができることを理解していますが、それを実装する方法がよくわかりません。誰かがこれのコード例を持っていますか?またはもっと良い方法はありますか
.net - Azure Web デプロイでこの System.Web.Helpers の不一致を解決するにはどうすればよいですか?
なぜこれを理解できないように見えるのかわかりません。私はDLLの厳密な名前付け地獄にいます。何が起こっているかは次のとおりです。
- Visual Studio 2012 RC を使用して、.NET 4.0 をターゲットとする MVC4 サイトを作成しています。
Microsoft.Web.Helpers
ライブラリで Gravatar Razor ヘルパーを使用しようとしています私のマシンでは動作しますが、Git 経由で Azure にデプロイした後、Gravatar ヘルパーの呼び出しで次の例外が発生します。
ファイルまたはアセンブリ 'System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。
System.Web.Helpers
Azure サイトをホストしている GAC にインストールされているのバージョンと、ターゲットにしているバージョンが一致していないようです。
これが私が試したことです:
- ローカルにコピー = true
- Phil Haack のブログで説明されているように、メニュー オプションが欠落しているように見えるため、自分の _bin_deployableAssemblies フォルダーをハッキングする
- System.Web.Helpers の .csproj ファイル内の拡張アセンブリ情報を削除する
また、web.config に次のアセンブリ バインディング リダイレクトがあります。
誰??
c# - 使用する新しいバージョンが存在しない場合、アセンブリの新しいバージョンに
一部のクライアントがバージョン 10 ではなくバージョン 11 を使用している場合、TFS アセンブリをバージョン 10 からバージョン 11 にリダイレクトするために bindingRedirect を使用しています。アプリケーションは TFS v10 DLL でコンパイルされています。
問題は、クライアントに TFS バージョン 10 ではなく TFS バージョン 11 がある場合、リダイレクトが正常に機能することです。クライアントに TFS v11 ではなく TFS v10 がある場合、ランタイム エラーが発生します。
ファイルまたはアセンブリを読み込めませんでした:microsoft.TeamFoundation.Common、Version=11.0.0.0、... など。
バージョン 11 が利用できない場合、アプリケーションはバージョン 10 の DLL を使用するようにフォールバックすべきではありませんか?
.net - アセンブリの名前を変更すると、「見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません」
これを含む MyApp.exe.config があります。
これは期待どおりに機能します。ただし、MyApp.exe の名前を MyApp.renamed.exe に変更し、構成ファイルの名前を MyApp.renamed.exe.config に変更すると、例外が発生します。「ファイルまたはアセンブリ 'MyApp' またはその依存関係の 1 つを読み込めませんでした。システムは指定されたファイルを見つけることができません。」
これは、構成ファイルがまだ MyApp アセンブリを参照しているためです。だから私はそれを読むように更新しました:
アプリケーションを実行すると、「見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません」という新しい例外が発生します。
上記のメッセージの意味は理解できますが、新しいマニフェスト ファイルを生成しないとアセンブリの名前を変更できないということではないですか? 理想的には、アセンブリの名前を変更して、引き続き機能できるようにしたいと考えています。この理由は、アプリにはさまざまな「フレーバー」があり、MyApp.Flavour1.exe、MyApp.Flavour2.exe などのファイル名を使用したかったためですが、フレーバーごとに異なるマニフェストと構成ファイルを生成しないと機能しません。 、 そのまま。
私が求めているのは、ファイルの名前を変更してもこの例外がスローされないようにアセンブリを作成する方法があるかどうかです。
c# - C#でのアセンブリバインディングエラー
app.configで依存アセンブリバージョンをリダイレクトし、次のconfigを介して指定された場所からdllをロードしています-
バインディングログでは、期待どおりにバージョンをリダイレクトしているように見えますが、古いバージョンと比較して失敗します。
C:/libs/myassembly.dllが新しいバージョンであることを確認しました。誰かがここで何が問題になる可能性があるかアドバイスできますか?とても有難い。
c# - dll を新しいバージョンに置き換える
多くのプロジェクトを持つ Caliburn.Micro アプリケーションがあります。複数のプロジェクトが、別のフォルダーにある同じ dll を参照しています。ここで、その dll を新しいバージョンに置き換える必要がありました。すべてのプロジェクトから参照を削除し、再度追加しました。しかし、実行時エラーが発生します:
助けていただけますか?
PS fuslogvw.exe を使用しようとしましたが、空で表示されます。
c# - web.config>configuration>runtime>assemblyBinding で生成されたエントリの意味/理由は何ですか?
しばらくの間、web.config ファイルのこのセクションに気付きました。現在、正確な目的が何であるかを推論しようとしています。
したがって、最初のエントリは次のように言っているようです。
System.Web.Helpers は、公開キー トークンが の依存アセンブリの名前です
31bf3856ad364e35
。バージョン 1.0.0.0 から 2.0.0.0 をバージョン 2.0.0.0 にリダイレクトします。
私の最善の推測では、ASP.NET ランタイムのコンテキストで実行され、指定された名前のアセンブリに依存し、指定された範囲内のバージョンもあるコードは、指定されたバージョンでコンパイルされたかのように実行されることを意味します。指定された公開鍵。
これは、クラス ライブラリに依存する Web プロジェクトがあり、そのクラス ライブラリに bindingRedirect を持つ古いバージョンのアセンブリへの参照がある場合、新しいバージョンに対してコンパイルされたかのようにコードが実行されるということですか?
asp.net - ランタイム アセンブリが古いアセンブリにバインドされないようにする
私は3つのプロジェクトで解決策を持っています:
Solution.Web.Core - 共通クラス
Solution.Web.Mvc - MVC 4
Solution.Web.Api - Web Api 2 aka ASP.NET 5.0 (beta-1) アセンブリの実行
MVC アプリケーションの子アプリケーション (IIS 内) として WebApi をセットアップしましたが、このプロジェクトを完全に分離するのに苦労しています。
Solution.Web.Core
ASP.NET 4.0 アセンブリへの参照がいくつかあるため、このプロジェクトへの参照を追加するSolution.Web.Api
と、実行時に次の例外が発生します。
ファイルまたはアセンブリ 'System.Net.Http.Formatting、Version=5.0.0.0、Culture=neutral、PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)
ASP.NET の古いアセンブリ バージョンを参照しているにもかかわらず参照Solution.Web.Api
できるように、このエラーの発生を防ぐにはどうすればよいですか?Solution.Web.Core
注:エラーには「System.Net.Http.Formatting
またはその依存関係の1つ」と表示されているため、正確に問題のあるアセンブリを特定する方法さえわかりません。
registry - アセンブリ バインディングのログを有効にするにはどうすればよいですか?
「ファイルまたはアセンブリ 'Bla' またはその依存関係の 1 つを読み込めませんでした。正しくない形式のプログラムを読み込もうとしました。」というメッセージが表示されます。
詳細情報の一部は次のように述べています。
「WRN: アセンブリ バインドのログがオフになっています。アセンブリ バインド エラーのログを有効にするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) を 1 に設定します。注: アセンブリ バインド エラーに関連するパフォーマンスの低下がいくつかあります。この機能をオフにするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] を削除してください。」
したがって、これにより、上記のエラーが発生する理由についての洞察が得られる可能性があると考えて (おそらく、次の YSOD には、失敗した正確な理由に関するより明確な情報が含まれている可能性があります)、レジストリ内のその場所に移動しましたが、そのようなキーはありません私が見ることができること。それが持っているものは次のとおりです。
私は何が欠けていますか?