locked
厳密な署名のエラー対処(イベントレシーバ) RRS feed

  • 質問

  • お世話になっております。
    タイトルの件について質問させてください。

    【問題】
    エラーメッセージ:「参照されたアセンブリ '******' は厳密な名前を持っていません。」
    が発生し、その解決方法が分かりません。

    【経緯など】
    複数のソリューションで共有可能な機能を実装したdllを作成してみました。(クラスライブラリプロジェクト)
    それを、イベントレシーバのプロジェクトに、参照すると上記エラーメッセージが表示されました。

    試しに、クラスライブラリのプロジェクトにも厳密な署名をしてみると、エラーは消えたのですが、処理が実行できない現象が発生しました。(ブレークポイントで処理が止まらない)

    この解決方法を教えて頂けないでしょうか。

    【その他】
    ・Webサイトプロジェクトでは、参照し動作確認済みです。
     そのため。ソースベースのエラーというよりは、プロジェクトのプロパティ設定なのかなと考えております。
    ・dll作成した端末とイベントレシーバーを作成した端末は異なります。

    【環境】
    VisualStudio2010
    .NETFramework3.5
    SharePoint2010

    【参考サイト】
    ・アセンブリを厳密名で署名するには?[VS 2005のみ]
    http://www.atmarkit.co.jp/fdotnet/dotnettips/495strongname2005/strongname2005.html

    • 編集済み kaijin22 2012年10月18日 0:32
    2012年10月18日 0:24

回答

  • kaijin22 さん

    以下、確認させてください。

    1.Webサイトプロジェクトで動作確認をしたのは、イベントレシーバから参照しているDLLでしょうか?

    2.イベントレシーバを含むDLLとクラスライブラリプロジェクトで作成したDLLは、GACに入れていますか?

    恐らく2ができていないのではないかと思いますが、いかがでしょう?
    ちなみに、イベントレシーバの展開については、以下のサイトが参考になります。
    http://msdn.microsoft.com/ja-jp/library/gg749858.aspx


    SharePoint Developer http://sharepoint.orivers.jp

    • 回答としてマーク kaijin22 2012年10月24日 0:26
    2012年10月22日 16:50

すべての返信

  • 何か記載が足りないなどありましたら、ご指摘よろしくお願いいたします。
    知識不足にて、何を書き足したほうが良いのかあまり把握できておりません。

    そもそも、イベントレシーバに、クラスライブラリプロジェクトで作成したdllを参照させることは可能なのでしょうか。
    (.NET側で用意したdllを読み込むのと何が異なるのかよく分かりません)


    • 編集済み kaijin22 2012年10月22日 0:02
    2012年10月21日 23:58
  • kaijin22 さん

    以下、確認させてください。

    1.Webサイトプロジェクトで動作確認をしたのは、イベントレシーバから参照しているDLLでしょうか?

    2.イベントレシーバを含むDLLとクラスライブラリプロジェクトで作成したDLLは、GACに入れていますか?

    恐らく2ができていないのではないかと思いますが、いかがでしょう?
    ちなみに、イベントレシーバの展開については、以下のサイトが参考になります。
    http://msdn.microsoft.com/ja-jp/library/gg749858.aspx


    SharePoint Developer http://sharepoint.orivers.jp

    • 回答としてマーク kaijin22 2012年10月24日 0:26
    2012年10月22日 16:50
  • 及川 紘旭様

    ご指摘・ご質問ありがとうございます。
    いただいた2点の質問について
    >1.Webサイトプロジェクトで動作確認をしたのは、イベントレシーバから参照しているDLLでしょうか?
    はい。
    同じソリューション内のクラスライブラリプロジェクトで生成されたDLLを参照しております。
    構成の概要は以下になります。
    ===
    ・クラスライブラリA
    ・クラスライブラリB
     ⇒クラスライブラリB参照(オブジェクト生成・メソッド実行)
    ・WebサイトC
     ⇒クラスライブラリA・クラスライブラリBを参照(オブジェクト生成・メソッド実行)
    ===

    >2.イベントレシーバを含むDLLとクラスライブラリプロジェクトで作成したDLLは、GACに入れていますか?
    GACそのものを知りませんでした。
    一度、いただいたサイトを確認した後、再度返信させていただきたいです。


    • 編集済み kaijin22 2012年10月23日 0:35
    2012年10月23日 0:35
  • 及川 紘旭様

    返信が遅くなってしまい、申し訳ございません。

    ご指摘のGACで解決することができました。
    お忙しい中、ありがとうございました。

    GAC(グローバル配置)の他に、「プライベート配置」という配置方法があるようなので、
    現在はそれを調べております。

    2012年10月24日 0:26