2009-04-01 1 views
1

私たちは、ユニークで苦しい状況を呈しています。従来、GACとポリシーファイルを使用して、.NETアプリケーションのDLLバージョンを制御してきました。しかし、我々のアプリケーションの中にはポリシーファイルを尊重しないものがあるため、非常にユニークな状況があり、これに大きな問題が発生しています。最も具体的には、ポリシーファイルを持つ.NET 1.1のDLLを参照する.NET 2.0アプリケーションです。中央のNON GACにDLLを保存する場所

私たちは、Windowsアプリケーションと多数のWebアプリケーションで動的に(リフレクションによってロードされて)実行されるアイテムのブレンドミックスを持っています。私たちは、GACのバージョン管理について心配するのではなく、もっと「集中型DLLストア」に移行しようとしています。しかし、私たちはアプリケーションに「ここではDLLを探す」ように指示する方法は見つけられないようです。

いくつかのアセンブリ情報ノード(http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx)を見ると、私たちはそこに行くことができますが、それぞれのDLLと、必要なすべてのDLLを定義する必要があります。共有DLLのバージョンを更新する際に、通常のweb.configが更新されます。

私たちがDLL参照をどのように動かすことができるのでしょうか? CopyLocalは、新しいバージョンの共有DLLを使用する必要のあるアプリケーションを必要とするため、オプションではありません。 GACは、少なくとも今のところ、どちらも選択肢ではありません。

+0

これは、四角いペグに合わせて丸い穴を伸ばしようとしているような感じです。 .NET 1.1アセンブリをお持ちでない場合は、このソリューションが必要ですか? –

+0

@ジョン - あなたは100%正解です。私たちが純粋な.NET 2.0なら問題はありません。しかし、.NET 2.0への移行は不可能です。 (70 +開発者200 +アプリケーションは、更新する必要があり、生産に行く) –

答えて

1

あなたは

<?xml version="1.0"?> 
<configuration> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="MyDll" /> 
     <codeBase version="1.0.1000.20000" href="file:///c:\SharedDlls" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

、あなたのapp.configでCodeBase hintsを使用することができますあなたのDLLを使用すると、machine.configファイル内でこれを使用したい場合は、あなたが来た場合には(あなたのための問題ではありませんstong名が必要GACの世界からは、マイクロソフト認定資格が必要です)。

link on an MSDN blogは、より深いアドバイスを提供します。

+0

これは私たちが考えていた方法ですが、コードベースのバージョンは単一のバージョン番号なので、すべての設定ファイルを更新する必要がありますネットワーク上に分散された200の設定ファイル) –

関連する問題