2012-02-27 3 views
0

Я создал пару расширенных методов в модуле VB.NET. Я поместил их в класс, построил его и получил DLL. Из другой программы я сделал ссылку на эту DLL и импортировал ее с помощью Imports. Расширенные методы появляются в IntelliSense, и он работает, но в консоли Error появляется предупреждение:Расширенные методы для 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 

И у меня есть еще одно сомнение. В заявлении Imports я должен упомянуть имя DLL вместе с именем Namespace. Например,

Imports ExtendedMethods.nK0deExtendedMethods 

Обычно вам нужно импортировать имя пространства имен, не так ли? почему это происходит?

Спасибо большое всем.

+0

Вы пытались очистить и восстановить свое решение? –

+0

@AmenAyach да, но ничего не изменилось. – Isuru

+0

В этих плохих ситуациях я использую Process Monitor (http://technet.microsoft.com/fr-fr/sysinternals/hh205949), чтобы проверить, где не выполняется загрузка DLL. Удачи. – remio

ответ

0

Я только что создал новый Class, убрана Namespace и построить его. Это сработало хорошо.

0

Тип модуля VB довольно особенный.

Вы можете использовать:

Imports ExtendedMethods 

Но тогда вы должны ссылаться на такой код:

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

Я разобрался. Я создал новый класс, удалил имя класса и «пространство имен» и вставил модуль. Решили обе проблемы. Спасибо за ваш ответ. Ценить это :) – Isuru