2

小さなヘルパー フレームワークを作成しましたが、それを多言語にしたいと考えています。.resxそのため、ファイルを翻訳に使用しました。

しかし、私のフレームワークが独自のアプリケーションに使用されると、サテライト dll が本当に混乱するのではないかと心配してい.resxます...

リソース地獄と思われるものを回避するためのベストプラクティスを知りたい

4

1 に答える 1

1

ベスト プラクティスは、Microsoft のガイドラインに従うことです。したがって、*.resx ファイル、またはより正確にはサテライト アセンブリを使用する必要があります。

ただし、このアプローチの問題は、依存関係を処理する方法です。私が理解していることから、追加のライブラリでディスクを汚染したくないでしょう。そのため、クライアントには必要なファイルだけをインストールしてもらいたいと考えています。

良いニュースは、それを行うことができ、引き続きサテライト アセンブリを使用できることです。必要なのは、アセンブリを DLL にパックし、アセンブリ解決イベントをオーバーライドして、ディスク上で検索するのではなく内部ファイルを使用するようにすることだけです。ただし、すべての長所には短所もあります。これを行うと、クライアントは 1 つのファイル (かなり大きなファイル) をインストールする必要がありますが、提供された言語から選択する必要があります。将来、何かを切り取ったり、言語を追加したりすることはできません。

サテライト アセンブリ アプローチが最適なソリューションである理由を理解していただければ幸いです。これにより、ローカリゼーション プロセスを制御できるようになります。これを処理するより良い方法はありません、申し訳ありません。
ところで。DLL 地獄は、異なるクライアントが必要とする同じライブラリの複数のバージョンに関連していました。あなたの場合は起こりません。もちろん、追加のファイルは追加のインストーラ エントリを意味しますが、人々がマージ モジュールの概念を作成したのには理由があります。それほど心配する必要はありません。フレームワークをマージ モジュールとして提供し、必要に応じて自分でカスタマイズできるようにします。

于 2012-06-17T15:58:25.590 に答える