特定のdllバージョンを強制的に使用する方法はありますか? app.configから?dll版を強制的に使用する方法はありますか?
(backstory)私たちはSQL Compact 3.5を使用しており、ビジネス上の理由で(そうです、わかっています)、SQL Compact 3.5 SP1に移行することはできません。私たちはSystem.Data.SqlServerCeとすべての管理されていないDLLをビルドディレクトリに持っていますが、SP1がインストールされている場合、アプリケーションはロードされ、SP1の管理対象DLLを使用します(また、管理対象外のDLLも想定します)。
SP1以前のDLLのバージョン番号は3.5.0.0で、SP1バージョンは=私がCopyLocalにSystem.Data.SqlServerCeを=真および特定のバージョンへの参照を設定した3.5.1.0
ですtrueですが、pre-sp1バージョンがビルドディレクトリにある場合でも、SP1バージョンを使用します(GACのものを使用するものと仮定します)。私はGACからリファレンスを追加しようとしましたが、手動でファイルシステムに入り、dllを直接参照していました。
は(ちょうどそれを明確にするために、クライアントはそれを必要とする他のソフトウェアのサービスパックをインストールしているが、我々はまだ、サービスパックがインストールされていてもSP1以前のバージョンを実行する必要があります)
いずれかがあります私たちがビルドディレクトリに持っているものを.netで使用するように強制する方法?
UPDATE:
私はthis questionのようなアプリの設定でオーバーライドを置くが、ログビューアを結合アセンブリを実行すると、私はこれを与える:
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Projects\ConsoleApplication11\bin\Debug\ConsoleApplication11.exe.Config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config.
LOG: Redirect found in application configuration file: 3.5.0.0 redirected to 3.5.0.0.
LOG: Publisher policy file is found at C:\Windows\assembly\GAC_MSIL\policy.3.5.System.Data.SqlServerCe\3.5.0.0__89845dcd8080cc91\publisher.config.
LOG: Publisher policy file redirect is found: 3.5.0.0 redirected to 3.5.1.0.
LOG: ProcessorArchitecture is locked to MSIL.
LOG: Post-policy reference: System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91, processorArchitecture=MSIL
LOG: Found assembly by looking in the GAC.
LOG: Binding succeeds. Returns assembly from C:\Windows\assembly\GAC_MSIL\System.Data.SqlServerCe\3.5.1.0__89845dcd8080cc91\System.Data.SqlServerCe.dll.
LOG: Assembly is loaded in default load context.
それは3.5の設定のように見えます。 1アセンブリがGACでオーバーライドしています。私のapp.configから問題を強制する方法はありますか?
いや、我々は3.5.0.0を参照しています。サーバはsp1クライアントとpre-sp1サーバを使用して複製が中断するため、問題となるpre-sp1になります(サーバのアップグレードは、今後数か月以内に行われます) – Gareth