Visual Studio 2008 не создает файлы * .refresh для внешних ссылок на DLL ... что мне не хватает? - PullRequest
1 голос
/ 24 марта 2010

У меня вопрос о том, что меня просто раздражало.

Мы с коллегой создаем структуру поддержки для нашего текущего клиента, которую мы хотим использовать в других проектах.

DLL, которую мы хотим использовать в качестве ссылки в нашем проекте, будет внешней ссылкой. Мы добавляем его, выполнив «Добавить ссылку ...», а затем перейдем к местоположению .dll. Visual Studio нужно только добавить .xml, .pdb и файл .dll.refresh, но вместо этого он копирует фактические .dll (и .xml и .pdb) в корзину.

Когда мы перестраиваем проект фреймворка, другой проект, использующий его .dll, теряет работоспособность, пока мы не отбросим и не добавим ссылку снова. Все, что я читал в Интернете, говорит о том, что VS2008 должен создавать файлы .dll.refresh для вас, но этого не происходит.

Есть идеи? Я что-то упускаю или делаю что-то не так?

На данный момент я готов добавить событие перед сборкой, чтобы просто скопировать Framework .dll в мою корзину, но файл .refresh кажется меньше хлопот, если он будет работать.

Спасибо.

ОБНОВЛЕНИЕ:

Этот пост SO описывает действия, которые должны происходить с файлами обновления.

Ответы [ 4 ]

4 голосов
/ 11 апреля 2010

Получается, что файлы .refresh создаются только для веб-сайтов проектов, а не веб-приложений проектов.

Проблема связана с тем, что в Visual Studio возникла проблема с удалением файлов блокировки для ссылок DLL размером более 64 КБ, эта проблема предположительно исправлена ​​в VS 2010.

Текущий обходной путь - закрыть и снова открыть решение или выгрузить и перезагрузить проект, содержащий ссылки.

2 голосов
/ 24 марта 2010

Если проекты находятся в одном решении, и вы добавляете «Ссылку на проект», которая должна решить вашу проблему.

0 голосов
/ 14 октября 2010

Вы можете попробовать добавить ссылки другим способом.

  1. Добавить ссылку
  2. Выберите вкладку Браузер (Не вкладка Проект)
  3. Выберите * .dll, которая вам нужна

Я попробовал и был успешным.

Если вы выберете вкладку Project -> * * .dll.refresh не добавлено

0 голосов
/ 24 марта 2010

Никогда не слышал о .refresh.

Что Охотник сказал, прежде всего.

Во-вторых, если dll является внешней зависимостью, я обычно добавляю DLL к решению в папку под названием «Зависимости» в дереве решения. Тогда любой проект, который ссылается на эту dll, будет ссылаться на этот конкретный экземпляр. Это гарантирует, 1) все проекты ссылаются на правильную DLL и 2) все проекты обновляются до новой версии одновременно.

Может быть, я никогда не слышал о .refresh, потому что он мне никогда не был нужен.

...