2012-02-27 14 views
0

VB.NETモジュールでいくつかの拡張メソッドを作成しました。私はそれらをクラスの中に入れて、DLLを作りました。 別のプログラムから、そのDLLへの参照を作成し、Importsを使ってインポートしました。 拡張メソッドがIntelliSenseに表示され、機能しますが、エラーコンソールに警告が表示され、DLLへの拡張メソッド

この参照を解決できませんでした。アセンブリ "nK0deExtendedMethods"を見つけることができませんでした。アセンブリがディスク上に存在することを確認します。

DLLを参照したにもかかわらずこのエラーが発生する理由は誰にも分かりますか?

これは私が拡張メソッドで自分のモジュールを配置したクラスです。

Imports System.Runtime.CompilerServices 
Imports System.Drawing 

Namespace nK0deExtendedMethods 

    Public Module ExtMethods 

     <Extension()> 
     Public Function Merge(ByVal img1 As Image, ByVal img2 As Image) As Image 

      Dim bmp As New Bitmap(Math.Max(img1.Width, img2.Width), img1.Height + img2.Height) 
      Dim g As Graphics = Graphics.FromImage(bmp) 

      g.DrawImage(img1, 0, 0, img1.Width, img1.Height) 
      g.DrawImage(img2, 0, img1.Height, img2.Width, img2.Width) 
      g.Dispose() 

      Return bmp 

     End Function 

    'Public Class NewImageMethods 

    'End Class 

End Namespace 

もう1つの疑問があります。 Importsステートメントでは、DLLの名前とNamespaceの名前について言及する必要があります。このように、

Imports ExtendedMethods.nK0deExtendedMethods 

通常、名前空間の名前はインポートする必要がありますか?なぜそれが起こっているのですか?

ありがとうございます。

+0

ソリューションをクリーニングして再構築しようとしましたか? –

+0

@AmenAyachはい、何も変更されていません。 – Isuru

+0

これらの悪い状況では、プロセスモニタ(http://technet.microsoft.com/fr-fr/sysinternals/hh205949)を使用して、dllのロードが失敗した場所を確認します。がんばろう。 – remio

答えて

0

私はちょうど、新しいClassを作成しNamespaceを取り出して、それを構築します。それはうまくいった。

0

VBの 'モジュール'タイプはかなり特別です。

を使用でき

Imports ExtendedMethods 

しかし、その後、あなたは、このようなコードを参照する必要があります。

nK0deExtendedMethods.ExtMethods.Merge(Nothing, Nothing) 
+0

私はそれを整理しました。私は新しいクラスを作成し、クラス名と 'Namespace'を削除し、モジュールを挿入しました。両方の問題を解決しました。お返事をありがとうございます。感謝します :) – Isuru