Кроты не показывают новые сигнатуры методов после изменений в классе

Я имел

class Voo
{
  private static AnotherClass Doo(int id)
  {
     //do some stuff with id then return object of AnotherClass
     return x[0];
  }
}

и использовал это частное с родинками

MVoo.DooInt32 = delegate ...

ТЕПЕРЬ я изменил метод на:

class Voo
{
  private static AnotherClass Doo(string a, object b)
  {
     //do some stuff with a and b then return object of AnotherClass
     return x[0];
  }
}

НО родинки не дают мне новую подпись. Силл MVoo.DooInt32 но я ожидаю MVoo.DooStringObject

Я удалил ссылку на родинки, почистил, восстановил. Пока нет положительного результата.

Есть идеи?

2 ответа

Решение

Вы должны быть уверены, что удалили файл сборки mole (.dll), перестроили тестовый проект без типа mole, а затем добавили его обратно. Этот процесс тщательный и всегда работал для меня в этой ситуации:

  1. Удалить ссылку на сборку моль из тестового проекта
  2. Удалите файл.moles, названный в честь рассматриваемой сборки
  3. В обозревателе решений показать все файлы в тестовом проекте
  4. Разверните скрытую папку "MolesAssemblies"
  5. Удалите нужный файл _.Moles.dll и соответствующие файлы XML.
  6. Удалить (не удалить) тестовые файлы, которые ссылаются на сборку крота
  7. Перестройте тестовый проект
  8. Выберите опцию контекстного меню "Добавить сборку родинок" в справочнике по нужному тестовому проекту.
  9. Добавить тестовые файлы, которые были временно удалены из проекта
  10. Перестройте тестовый проект

Вы должны удалить файл moles для этой сборки, например, voo.moles, а затем создать новый.

Другие вопросы по тегам