Web Deploy - Как создать пакет с выбранными элементами
Я хотел бы попробовать метод Web Deploy для развертывания нашего веб-сайта. Перед своими вопросами я хотел бы предоставить несколько подробностей о текущей процедуре развертывания:
Это корпоративный сайт, размещенный на нескольких серверах (с непрерывным развертыванием).
Файлы находятся не в режиме "Release", а в режиме "Debug".
Мы вручную копируем и вставляем только текущие файлы, связанные с назначением. Скажем, на этой неделе модуль учетных записей должен быть развернут, а затем файлы, которые будут развернуты,
/ mysite / App_Code / Models / accounts.cs
/ mysite / pages / accounts.aspx, accounts.aspx.csЭти 3 файла будут скопированы в соответствующие папки на всех серверах вручную. Это была процедура в течение многих лет здесь.
- Проект "mysite" - это "Веб-сайт ASP.NET", а не "Веб-приложение ASP.NET" (в VS2013), что означает, что эти параметры недоступны - Пакет / Публикация в Интернете и Пакет / Публикация SQL
Я создал пакеты в системе разработки,
(i) использование опции публикации (пакета веб-развертывания) в Visual Studio, а также
(ii) экспорт приложения в IIS (дает возможность выбрать файлы)
- Можно ли создать пакет только для тех файлов, которые мне нужны (в этом случае accounts.cs, accounts.aspx, accounts.aspx.cs), используя функцию публикации VS.
- Можно ли включить в пакет файл пользовательских скриптов SQL? (используя IIS или VS)
- Если ответ "Да" для Q2, то он должен быть выполнен только один раз, а не для всех серверов. Потому что есть только один сервер БД. Как это можно сделать.
Я еще не пошел на установку части пакета.
1 ответ
1 - Не через VS, потому что в MSBuild for Websites нет точки расширения (о которой я знаю). У Сайеда есть отличный пост, в котором описывается, как веб-сайты обрабатываются иначе, чем приложения.
Альтернатива - вы можете скопировать файлы, которые вы хотите развернуть, в новую папку, а затем использовать инструмент командной строки MSDeploy.exe для создания клиентского пакета MSDeploy, который вы можете развернуть на своем сервере.
D:\temp>"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:contentPath=%cd%\DefaultWebSite\website1 -dest:package=DefaultWebSite.zip
Info: Updating MSDeploy.contentPath (MSDeploy.contentPath).
Info: Adding virtual path (D:\temp\DefaultWebSite\website1)
Info: Adding directory (D:\temp\DefaultWebSite\website1).
Total changes: 3 (2 added, 0 deleted, 1 updated, 0 parameters changed, 0 bytes c
opied)
D:\temp>"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package=DefaultWebSite.zip -dest:contentPath="Default Web Site\website2"
Info: Adding MSDeploy.contentPath (MSDeploy.contentPath).
Info: Adding virtual path (Default Web Site\website2)
Info: Adding directory (Default Web Site\website2).
Info: Adding file (Default Web Site\website2\Default.aspx).
Info: Adding file (Default Web Site\website2\Default.aspx.cs).
Info: Adding file (Default Web Site\website2\Web.config).
Total changes: 6 (6 added, 0 deleted, 0 updated, 0 parameters changed, 971 bytes
copied)
2/3 - Да, вы можете включить SQL в пакет веб-развертывания, но он будет развертываться при каждом развертывании пакета. Мы обнаружили, что лучше разделять наши развертывания SQL в отдельный пакет, поэтому мы можем развертывать его только тогда, когда захотим.
В этом посте описывается, как мы обрабатываем наши развертывания SQL - https://dotnetcatch.com/2016/02/10/deploying-a-database-project-with-msdeploy/