12

NHibernate 2.1 の最近のアップグレードにより、大きな頭痛の種が表面化しました。

ほとんどのプロジェクトは、署名済みアセンブリとしてデフォルトでビルドされているようです。たとえば、fluentnhibernate はキーファイル fluent.snk を参照します。

Nhibernate.search は、収集できるものから署名なしでビルドされ、署名付きでビルドされません。つまり、生成されたキーファイルを参照すると、次のエラーが発生します。

参照されたアセンブリ 'Lucene.Net' には厳密な名前がありません

これは、依存関係として nhibernate.search を持つ Castle.activerecord のようなプロジェクトは、アセンブリ nhibernate.search に厳密な名前がありません: という恐ろしいエラーが発生するため、ビルドされないことを意味します。

かなりの数のプロジェクトが caslte.activerecord を使用しているため、これをビルドすることが非常に重要です。

私は完全にアイデアがないので、ここで何をすべきか誰か考えていますか?

これは完全な狂気です。

4

4 に答える 4

2

問題は、厳密な名前のアセンブリから厳密な名前のないアセンブリを参照することはできませんが、その逆は可能です。そのため、適切なプロジェクトはすべて署名する必要があります。

私がその問題に遭遇したとき、私はプロジェクトの作成者に一行ドロップし (または問題を登録し)、上記のコメントに説明を記載し、修正を待つ間、自分でコンパイルして署名します。

于 2009-11-03T18:35:18.550 に答える
0

詳細なガイドがhttp://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signingに投稿されています。

要約すると、手順は次のとおりです。

  • を使用してターゲットバイナリを逆アセンブルしますildasm
  • を使用して再構築/再組み立てしilasmます。今回はキーを使用します
于 2012-08-28T09:37:07.287 に答える