как обновить ссылки в приложениях ASP.NET без Visual Studio?

StackOverflow https://stackoverflow.com/questions/868559

  •  22-08-2019
  •  | 
  •  

Вопрос

У меня есть приложение ASP.NET, которое использует внешнюю сборку, которой нет в GAC.В приложении есть файл .refresh, который копирует сборку в каталог bin при компиляции приложения.

Когда я устанавливаю приложение на производственный сервер (путем копирования файлов приложения в виртуальный каталог), каталог bin не обновляется автоматически при наличии файла .refresh, как я думал.Я попробовал использовать инструмент aspnet_compiler, но это не сработало, поскольку он ожидает, что сборки уже находятся в каталоге bin.

Как мне заставить .NET обновлять каталог bin приложения без Visual Studio?

Это было полезно?

Решение

Файлы .refresh существуют только для того, чтобы VS знал, что ему следует отслеживать оригиналы, и если они изменились, скопировать новую версию в папку /bin.Это просто текстовые файлы с путем к оригиналу — для сравнения используется дата изменения.

Когда ты говоришь:

Когда я устанавливаю приложение на производственный сервер (путем копирования файлов приложения в виртуальный каталог), каталог bin не обновляется автоматически.

Что именно ты имеешь ввиду?Разве вы также не копируете содержимое каталога bin на рабочий сервер?Вам потребуется развернуть все зависимые сборки вместе с приложением.

Другие советы

Очистка каталога кеша asp.net может помочь:

C:\WINDOWS\Microsoft.NET\Framework\
FRAMEWORK_VERSION\Temporary ASP.NET Files\YOUR_APP_NAME

Удалите эти файлы .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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top