В нашем веб-проекте ASP.Net у нас есть некоторые файлы .refresh, связанные с некоторыми сторонними библиотеками DLL, которые мы используем. Есть идеи, что это такое и как / когда они созданы?
83
Эти файлы указывают путь к рассматриваемой DLL, чтобы сообщить Visual Studio, где ее найти (вы можете проверить это, если откроете их в текстовом редакторе). Они будут создаваться каждый раз, когда вы добавляете новую ссылку на проект.
Обычно они появляются, когда вы используете тип проекта, который не создает стандартный файл проекта Visual Studio, поскольку обычно туда входят пути к ссылкам на библиотеки DLL.
От сюда :
источник
Некоторая информация о файлах обновления после проб и ошибок. Эти эксперименты проводились с Visual Studio 2012. Ссылки были добавлены в веб-проект C # asp.net.
Как уже говорилось, добавление ссылки на сборку с помощью обзора добавляет файл .refresh. Однако, если есть дополнительные зависимые библиотеки DLL на явно добавленной DLL в каталоге, из которого вы добавляете, зависимые файлы также добавляются неявно, но без файлов .refresh! Так, например, я добавляю ссылку на «MyAssembly.dll» и получаю также «MyAssembly.dll.refresh». Но если есть сборка «MyDependentAssembly.dll», от которой зависит «MyAssembly.dll», я не получу «MyDependentAssembly.dll.refresh». Итак, что происходит, так это то, что обновляется одна сборка, но не ее зависимые! Вы должны добавлять библиотеки DLL по одной в обратном порядке зависимости, и тогда все будет работать лучше.
Некоторые другие вещи, о которых следует остерегаться. Добавление «MyAssembly.dll» также добавит «MyAssembly.pdb», если он присутствует. Также "MyAssembly.xml" будет добавлен к ссылкам, если он присутствует. Эти два файла также обновятся при наличии «MyAssembly.dll.refresh».
Но когда Visual Studio решит искать файлы обновления? Теперь помните, что в веб-проекте файл проекта не отслеживает конкретно ссылочные библиотеки DLL. Вы не найдете библиотеки DLL, перечисленные в файле проекта, только в зависимостях проекта. Так когда же произойдет обновление?
Ответ на вопрос, когда происходит обновление, - это во время сборки, когда необходимо загрузить указанную сборку. Это означает, что создание готового обновляемого веб-сайта может не захватить все библиотеки DLL. У меня была библиотека DLL, которая не обновлялась, а потом я понял, что она используется только внутри файла .ascx. Снятие флажка «Разрешить предварительно скомпилированный сайт быть обновляемым» на странице проекта MSBuild Options устранило эту проблему для меня.
Тем не менее, если вы добавите библиотеки DLL, на которые есть ссылки, которые загружаются через отражение в вашем коде, они не будут обновляться через ссылку. Вам нужно будет использовать события сборки, чтобы скопировать их в каталог bin.
источник