15

現在のプロジェクトでServiceStackを使用しようとしましたが、リリースされたバイナリには厳密な名前が付けられていなかったため、そのままでは使用できませんでした。GitHubで「なぜ」と尋ねると、次の答えが得られました。

それはウイルス的に有毒であり、バインディング、アップグレード、開発、展開などを妨げます.

mythz は非常に簡潔だったので、これ以上彼を悩ませたくなかったので、ここで質問しました。AutoMapper、NUnit、Moq、log4net、Ninject などの多くのオープンソース .NET プロジェクトを使用しており、それらのリリースはすべて厳密な名前が付いています。SOで同様の質問が見つかりましたが、役に立ちません。OSSでは通常の慣行ですか?署名済みと未署名の両方のバイナリをリリースしないのはなぜですか?

4

2 に答える 2

6

厳密な命名がオープン ソース プロジェクトにとって悪い考えである理由についての既存の議論を以下に示します。

https://groups.google.com/forum/?fromgroups#!topic/getglimpse-dev/pXXazMOOdjE

これを使用した悪夢の話は次のとおりです。

http://haacked.com/archive/2012/02/16/changeing-a-strong-name-is-a-major-breaking-change.aspx

私は個人的に、同じプロジェクトで Log4Net の 2 つの異なる厳密な名前のバージョンを参照するアセンブリを使用しようとした 2 世代の Log4Net に苦しんでいる 2 つのチームに参加しました。 、また、それは私たちが自分自身を対象にしたり、すべてのユーザーに強制したりすることを計画しているものでもありません.

厳密な名前のバージョンが必要なユーザーは、パブリック ServiceStack リポジトリの独自のクローン/フォークに自由に署名できます。

需要があれば、独自の「公式に歌われた」商用バージョンのライブラリを維持することを検討します。

于 2012-07-26T01:39:10.777 に答える
5

開発者次第だと思います。長所は明らかです。誰でも厳密な名前のアセンブリを取得して、あらゆる環境で使用できます。その特定のケースでは、署名付きまたは署名なしのアセンブリを意味します。短所 - ?

バイナリに署名するのは紳士的なルールであるべきだと思います。

Jon Skeet は同様の質問に答えましたが、彼の意見はまったく理解できません。

于 2012-07-25T22:52:52.547 に答える