私たちはユーザーのディスクにインストールする大きなwinformアプリケーションを持っています。 当社は、第三者に、当社のアプリ機能の一部を使用するアプリケーションを作成させたいと考えています。そこで、レジストリからインストールディレクトリを解決して、他のアセンブリの一部とやりとりするAPI.dllを作成しました。 API.dllをSDKとしてサードパーティに送信します。それにこれはGACの有効な使用ですか?
彼ら「コピーローカル」API.dllと船:数などのサードパーティアプリの実際の展開は、次のようになりますどのようにするためのオプションがあります。短所:顧客のアプリケーションでコピーされているため、API.dllに変更を加えることはできません。それが相互作用する他のアセンブリを変更する場合は、それを変更する必要があります(これはおそらくあります)。
第三者にはAPI.dllが付属していませんが、代わりにAPI.dllをGACに挿入します。短所:GACのハッスル、署名。
#1と同じですが、API.dllにはabstractions +/binから読み込むファクトリしかありません。短所:いつも些細なことではないかもしれない。
私は、GACが好きで、それを回避しようが、チームの何人かの人々がやるとここでのポイントを持っていません。どう思いますか?
+1 GACを回避するために...しかし、顧客が必要なときにアップグレードすることはできません。これはマシンにインストールする大きなシステムで、顧客はAPIを使用します。定期的にパッチなどを貼る必要があるかもしれないので、GACを使用することで、少なくともRTFMとローカルにコピーしなかった顧客を支援する機会が与えられます。 –
GACがローカルにコピーしたとしてもGACにいる場合でもGACはまだ勝つと思う –
Hmmm、私はGACが優先順位を取っていることを知らなかった(私はそれが別の方法だと思った)。しかし、クライアントは、アセンブリのバインディングを特定のバージョン番号に使用することによってそれを破壊する可能性があります。だから私はあなた次第だと思う。私が知っているのは、サードパーティのベンダーとして、私のAPIベンダーが私の製品を壊して私が展開しなかったアップグレードをした場合、私は非常に怒っていることを知っています。 – Reddog