Как вы обновляете ссылки в приложениях ASP.NET без Visual Studio?
У меня есть приложение ASP.NET, которое опирается на внешнюю сборку, которой нет в GAC. В приложении есть файл.refresh, который копирует сборку в каталог bin при компиляции приложения.
Когда я устанавливаю приложение на рабочий сервер (копируя файлы приложения в виртуальный каталог), каталог bin не обновляется автоматически при наличии файла.refresh, как я думал. Я попытался использовать инструмент aspnet_compiler, но он не работает, так как он ожидает, что сборки уже находятся в каталоге bin.
Как получить.NET для обновления каталога bin приложения без визуальной студии?
3 ответа
Файлы.refresh просто существуют, чтобы VS знал, что он должен отслеживать оригиналы, и, если они изменились, скопируйте новую версию в папку /bin. Это просто текстовые файлы с путем к оригиналу - для сравнения используется измененная дата.
Когда ты сказал:
Когда я устанавливаю приложение на рабочий сервер (копируя файлы приложения в виртуальный каталог), каталог bin автоматически не обновляется.
Что именно ты имеешь ввиду? Вы также не копируете содержимое каталога bin на рабочий сервер? Вам нужно будет развернуть любые зависимые сборки с приложением.
Удалите эти файлы.refresh.
Создайте простой скрипт сборки (используя все, что вам нужно, cmd, NAnt, Rake, psake ...), который:
- копирует эти файлы в папку приложения asp.net
- построить приложение asp.net.
Или вы можете отредактировать ваш файл.csproj и добавить что-то вроде:
<ProjectExtensions>
<PropertyGroup>
<PreBuildEvent>copy c:\path\to\dll\files $(ProjectDir)$(OutDir)</PreBuildEvent>
</PropertyGroup>
</ProjectExtensions>
Это добавит действие предварительной сборки, которое скопирует ваши dll-файлы в выходной каталог вашего приложения asp.net. Вам придется построить его с помощью MsBuild
Очистка каталога кэша asp.net может помочь:
C:\WINDOWS\Microsoft.NET\Framework\
FRAMEWORK_VERSION\Temporary ASP.NET Files\YOUR_APP_NAME