Как обновить сайт asp.net (только что измененные файлы) - PullRequest
13 голосов
/ 13 апреля 2009

Я занимаюсь разработкой сайта asp.net, который будет нуждаться в регулярных обновлениях для исходных кодов и сторон HTML. После того, как я выполнил необходимые обновления, я использую «инструмент публикации сайта» и публикую сайт в моем локальном каталоге. Затем я загружаю все файлы в удаленный файл.

Есть ли способ исправить мой сайт только что измененными файлами. Например, если я обновил только 2 файла из 84 (в формате HTML или на стороне источника), можно ли без проблем обновить только эти 2 файла?

Ответы [ 7 ]

6 голосов
/ 14 апреля 2009

В то время как Visual Studio предлагает несколько различных параметров компиляции / сборки, я думаю, что вы, вероятно, делаете все отлично для проекта сайта Visual Studio. Когда я работаю с веб-сайтом, а не с веб-приложением, я буду отправлять по FTP только те файлы, которые были изменены. Например, если бы я изменил некоторые HTML-теги внутри страницы .aspx, тогда только эта страница должна была бы быть загружена на веб-сервер. Если я изменю функцию Page_Load на странице .aspx.cs, то мне определенно потребуется также получить обновленную DLL на веб-сервере.

Я использую FileZilla для своего инструмента FTP, и есть возможность загружать только измененные файлы. Поэтому после того, как вы используете Visual Studio для публикации своего веб-сайта, вы можете получить все содержимое этого каталога и перетащить его на FTP-сервер и обновить только то, что изменилось.

2 голосов
/ 13 апреля 2009

Проект веб-сайта ASP.NET предлагает параметр в свойствах проекта -> вкладка «Параметры MSBuild», на котором можно установить «Разрешить обновление этого предварительно скомпилированного сайта».

Настройка этой опции

"Указывает, что содержимое .aspx страницы не скомпилированы в монтаж; вместо этого разметка остается как есть, позволяя вам изменить HTML и функциональность на стороне клиента после прекомпиляция веб-сайта. выбирающий этот флажок эквивалентен добавлению опция -u для Команда aspnet_compiler.exe. "

в соответствии с документами.

1 голос
/ 09 августа 2017

Я был совершенно не в восторге от доступных инструментов для VStudio. И вместо этого я использую Gulp. Даже в 2017 году проблема остается.

С gulp вы можете «смотреть» каталоги на наличие измененных файлов, поэтому я настроил его для просмотра папки [bin], а также ресурсов, отдельных от файлов aspx / cshtml.

Таким образом, всякий раз, когда я что-то изменяю, оно немедленно копируется в мою папку публикации, где я могу позже сжать ее и развернуть ТОЛЬКО набор изменений. Скрипт даже имеет задержку, поэтому я могу отложить копирование / выгрузку в ситуациях, подобных пакетам, где они генерируются динамически, и для их полной модификации требуется некоторое время.

Единственное, что мне нужно сделать, это очистить его перед тем, как я начну следующую веху, чтобы папка "publish", в которую gulp "auto развертывается", была пуста и готова к следующему запуску. Очистка папки и запуск «gulp watch» в фоновом режиме - это небольшая цена за такую ​​необходимую функцию.

Я чувствую, что это должен быть хороший элемент для разработки в качестве плагина vstudio.

1 голос
/ 13 апреля 2009

Зависит от типа проекта.

Если проект создан с помощью Файл> Новый веб-сайт , тогда можно просто скопировать измененные файлы .aspx (убедитесь, что соответствующий код - .cs - файлы также скопированы).

Если проект был создан с помощью Файл> Новый проект> Веб-приложение ASP.NET , вам нужно будет скопировать файлы .aspx и скомпилированный dll проекта (по умолчанию имя dll имеет проект как TestProject.dll) из папки bin внутри проекта.

0 голосов
/ 23 ноября 2018

Недавно я был вынужден перейти в среду Windows / C # /. NET / MVC из linux / node / angular. Вздох. Я обнаружил, что следующее решение (следующий абзац) устраняет боль, вызванную использованием Visual Studio для «публикации» кода. Процесс публикации VS2017 копирует каждый файл во всем приложении на веб-сервер, даже если в одном файле изменяется только один символ. Для нашего приложения среднего размера это может занять более часа.

Так вот что я делаю. Сначала я публикую решение локально (обычно в bin / release / Publish /). Публикация на сервере занимает около 1 минуты, а не 1 часа. Затем я сравниваю файлы между моим локальным каталогом публикации и каталогом сервера с помощью FreeFileSync. FreeFileSync потрясающий - и бесплатный. У меня есть доступ к каталогу сервера через общий доступ к файлам Windows. Сравнение занимает около 15 минут. Затем я могу точно увидеть, какие файлы отличаются и их нужно нажать. Обратите внимание, что опция, которую я использую, сравнивает фактическое содержание файлов, а не только время создания. Затем я использую функцию синхронизации FreeFileSync (опция зеркалирования), чтобы скопировать несколько файлов, необходимых на сервер. Это может занять две минуты. Таким образом, общая операция занимает около 20% времени, которое занимает Visual Studio «Публикация». Но лучше всего то, что фактическое попадание на prod-сервер занимает всего две минуты, необходимые для копирования файлов сравнения, а не 1-часовое отключение, вызванное Visual Studio Publish, когда оно копирует все файлы.

0 голосов
/ 10 августа 2011

Когда вы публикуете сайт с помощью Visual Studio, есть опция, которая гласит «Разрешить обновление этого предварительно скомпилированного сайта». Если вы выберете эту опцию, вы можете внести некоторые изменения в HTML, а не в код. Уроки программирования

0 голосов
/ 13 апреля 2009

Я думаю, тебе нужно что-то http://winmerge.org/ где он будет сравнивать файлы, которые были изменены и загружать их.

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...