Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 38548|Ответ: 2

[Источник] Влияние файла dll.refresh при ссылке на библиотеку классов проекта

[Скопировать ссылку]
Опубликовано 04.05.2020 20:42:50 | | |
Как всем известно, .net-программы генерируют .dll файлов в каталоге Bin после их генерации, но откуда берётся файл .dll.refresh? В тот день я загуглил buedom и выяснил, что это автоматически генерируется при ссылке на сторонний ассемблер (прямой) в вашем проекте, этот .refresh файл хранит исходный путь этого стороннего файла, если dll по этому пути обновлён, а не при генерации проекта, ассемблер будет обновлен и изменён по этому адресу. Без этого файла VS не сможет обновить ссылку на ассемблер по последнему статусу, что приведёт к некорректности версии ассемблера. Маленькая деталь приведёт к большой проблеме, внимание!

Была выпущена новая версия сайта, и была обнаружена серьёзная проблема: одна из библиотек не обновлялась автоматически, а устаревшая версия генерировалась автоматически.

После расследования выяснилось, что это связано с файлом dll.refresh в VSS.

Причина проста:

1。 В процессе разработки, когда на сайт добавляются другие внешние ссылки на DLL, система автоматически генерирует файл обновления, и этот файл не будет генерироваться, если в рамках этого решения добавляются другие ссылки на DLL проекта

2。 Файл обновления указывает путь для автоматического обновления dll, и если это ссылка на библиотеку, он укажет каталог Dubug или Release, а на этот раз ошибка будет каталогом Debug

3。 Разработчик ошибочно ввёл файл в кодовую базу VSS

4。 Проблема в том, что справочная библиотека менялась много раз после выхода первой версии, но интерфейс не менялся, поэтому библиотека генерируется отдельно, и обновляется только соответствующая DLL (версия выпуска) всех приложений, и проблем не возникало, но при повторной публикации приложения из-за наличия файла обновления в каталоге BIN проекта DLL автоматически обновляется по пути, указанному файлом, что приводит к выпуску старой версии DLL (Debug version).

Решение проблем:

Удалите файл dll.refresh из приложения и опубликуйте приложение заново

Или измените содержимое в dll.refresh и правильно запишите путь к dll





Предыдущий:Схема базы данных: разделение чтения и записи в CQRS
Следующий:Метод NPM для настройки и отмены прокси
 Хозяин| Опубликовано 04.05.2020 20:44:32 |
Ссылка на внешний dll-файл в VS2005 создаёт расширение под названием .refresh,
Если вы ссылаетесь на System.Web.Extensions.dll, он автоматически сгенерирует System.Web.Extensions.dll.refresh, который содержит абсолютный путь этого dll.
Примечание: после удаления VS2005 не будет автоматически обновлять dll, на который вы ссылаетесь через путь файла в каталог bin. Это значит, что если указанный вами dll обновлён, вам придётся вручную перессылаться на неё самостоятельно.
 Хозяин| Опубликовано 17.05.2020 11:51:33 |
тест
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com