2013-11-21 5 views
0

Я застрял в DLL Hell. У меня есть .dll, на который ссылается мой проект. Я буду ссылаться на него как на project.dll. Project.dll был создан Visual Studio 2012. Я ссылался на project.dll, перейдя в каталог bin. Я могу физически видеть его в каталоге.Visual Studio 2012 отказывается найти ссылку .dll

Как только я пытаюсь отладить в project.dll, Visual Studio действует так, как будто этого не существует. Вместо этого он дает мне экран, в котором говорится: «Filename.cs» не найден. »(Он даже выглядел?) Filename.cs является частью project.dll. Он дает мне возможность просматривать файл filename.cs, который я пытаюсь Затем я получаю сообщение об ошибке, говоря, что исходный файл отличается от того, когда был создан модуль. Это не имеет смысла, поскольку я просто нахожу BUILT project.dll и ссылаюсь на него. Я также должен добавить, что ошибка имеет следующее:

Источник: Правильный путь к Filename.cs

Модуль: пустой

процесса: Blank

Я попытался все следующие и Нота что разрешает это:

  1. Очистить/Сформировать/Восстановить оба проекта. (До точки, где я хочу блевать)
  2. Клиринговый браузер Cache
  3. Удаление временных файлов
  4. Удаление все под C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files
  5. Убедитесь, что project.dll не существует в GAC.
  6. Выход и перезапуск Visual Studio несколько раз.
  7. Перезагрузите компьютер.
  8. Снятие ссылки, затем повторное добавление ссылки.
  9. Вручную удаляет файл project.dll из папки bin другого проекта.
  10. Кричал.

Как я могу заставить Visual Studio 2012 распознавать, что project.dll и filename.cs существуют и являются правильной версией? Кроме того, возможно, что более важно, как я могу предотвратить появление этой BS в будущем?

РЕДАКТИРОВАТЬ: Я только что заметил на этом экране «Обзор по файлу», есть текстовое поле «Исходное местоположение», за которым следует путь, который не существует на моей машине. Я считаю, что это часть проблемы. Как мне заставить Visual Studio перестать искать этот недопустимый путь и вместо этого посмотреть на правильный путь, на который ссылается файл project.dll?

+0

http://superuser.com/ кажется хорошим местом для постановки этого вопроса! –

+0

@huMptyduMpty Это выглядит как вопрос разработчика, а не IT. –

+0

Это оригинальное местоположение выглядит вам знакомым? Я вижу, что этого не существует сейчас, но это место, которое существовало раньше на вашей машине? Или это совершенно незнакомо, и это было на какой-то другой машине разработчика? –

ответ

0

Я не уверен, почему это в конечном итоге решило его, но я заметил, что дата в MyMainWebService.dll (проект, ссылающийся на project.dll) устарела. Я вручную удалил этот .dll вместе с версией project.dll, которая была там. Затем я построил решение и нашел правильную версию project.dll. (Он также построил правильную дату MyMainWebservice.dll).

Что меня озадачивает, почему не сделал «Чистый» удалить устаревшую версию MyMainWebService.dll?

0

«Исходное местоположение» вычитается из отладочной информации, найденной для , конкретно экземпляра project.dll, который был загружен. Он добавляется при создании этой project.dll.

Что происходит, что ваше программное обеспечение явно не загружает project.dll, что вы создали, а другое. Чтобы узнать, какой из них, откройте «Модули» Visual Studio: Отладка> Windows> Модули. Перейдите в DLL проекта в списке, и вы можете найти точное место, откуда оно было загружено. Теперь вам нужно только перезаписать этот точный файл project.dll с вашей копией (или изменить способ загрузки, чтобы ваша загрузка была загружена).

+0

Привет, Csaba Toth. Путь, указанный для project.dll, находится в разделе «C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ root". Я вижу файл, который называется «__AssemblyInfo __. Ini». Внутри этого файла находится правильный путь к project.dll. – Dave

+0

Как его искать в папках temp? Я продолжаю удаляться отсюда. Чтобы ответить на ваш другой вопрос из вашего предыдущего комментария выше ... путь от другой машины разработчика. – Dave

+0

В вашем случае развертывание ASP.NET немного изменяет ситуацию и добавляет дополнительный шаг. Теперь вам нужно найти еще одну копию этого project.dll (которая была скомпилирована вашим партнером по разработке). Именно там он развернут из временной папки. –

Смежные вопросы