BindingRedirectを使用すると、YourAssembly.dll 1.1.0.0を1.2.0.0にリダイレクトできます。別のアセンブリ名へのBindingRedirect
アセンブリ名が異なる場合、これを実行できるかどうかは誰にもわかりません。
など。
YourAssembly1.dll(V1.1)YourAssembly2.dll(V2.8)にリダイレクト
BindingRedirectを使用すると、YourAssembly.dll 1.1.0.0を1.2.0.0にリダイレクトできます。別のアセンブリ名へのBindingRedirect
アセンブリ名が異なる場合、これを実行できるかどうかは誰にもわかりません。
など。
YourAssembly1.dll(V1.1)YourAssembly2.dll(V2.8)にリダイレクト
このような何かのためにUnityまたはSpring.NETのような依存性注入フレームワークを使用しないのはなぜ?どのファイルをロードするかを設定するのはかなり簡単に行うことができます。
YourAssembly1.dll(v1.2)を読み込み、YourAssembly2.dllにその機能を委任してもよいですか?
元のアセンブリを逆コンパイル、変更、再コンパイルしてYourAssembly2.dllを参照するように、ILDASMとILASMを使用します。
私は頭の中でアイデアを得て、それが可能であることを確認するために2回の検索を行いました。 Is it possible to modify assembly manifests other than by ILDASM/ILASM hacking?とhttp://forums.asp.net/t/1582934.aspx/1
自分のアプリケーションにYourAssembly1
という参照があるため、これは不可能です。
ランタイムでアプリケーションがロードされると、アセンブリYourAssembly1.dll
(プロービングとバージョンリダイレクトの適用)がロードされるため、代わりにアセンブリYourAssembly2
をロードできません。
私が正しく思い出した場合、約4年前にAppDomain.AssemblyResolve eventを使ってこれを行いました。コンセプトは、AssemblyName要求を取得し、アセンブリを返すことです。場合によっては、実行時にDynamicAssemblyを生成して注入することさえできました。私はこれに強い命名が及ぼす影響を忘れる。
開始プロセスを制御できない場合は役に立ちません。 – Ryan
ご質問いただきありがとうございます。投稿に私の新しい答えをお試しください。 –