0

Я хотел бы попробовать метод «Web Deploy» для развертывания нашего сайта. Перед мои вопросы, я хотел бы представить некоторые данные о текущей процедуре развертывания:Web Deploy - Как создать пакет с выбранными элементами

  1. Это предприятие сайт & размещаются на нескольких серверах (с непрерывным развертыванием).

  2. Файлы находятся не в режиме «Release», а в режиме «Debug».

  3. Мы вручную копируем только те файлы, которые связаны с текущим назначением. Скажем, на этой неделе, модуль Accounts должен быть развернут, то файлы, которые будут развернуты в
    /MySITE/App_Code/Модели/accounts.cs
    /MySITE/страницы/accounts.aspx, счета .aspx.cs

    Эти 3 файла будут скопированы в соответствующие папки на всех серверах вручную. Это была процедура годами.

  4. Проект 'MySite' является 'ASP.NET-сайт', а не 'ASP.NET Web Application' (в VS2013), что означает, что эти параметры недоступны - Пакет/Публикация Web & Пакет/Публикация SQL

Я создал пакеты в системе Дева
(I), используя опцию публикации (пакет развертывания веб) в Visual Studio и также
(б) приложение экспорта в IIS (дает возможность выбрать файлы)

  1. Возможно ли создать пакет только для файлов, которые мне нужны (в этом случае accounts.cs, accounts.aspx, accounts.aspx.cs), используя функцию публикации VS.
  2. Возможно ли включить в пакет пользовательский файл сценариев SQL. (с использованием IIS или VS)
  3. Если ответ да для Q2, то он должен выполняться только один раз, а не для всех серверов. Потому что есть только один сервер БД. Как это можно сделать.

Я еще не пошел на установку части пакета.

ответ

1

1 - Не через VS, поскольку в MSBuild для веб-сайтов нет точки расширения (что я знаю). Sayed имеет a great post, в котором описывается, как веб-сайты обрабатываются иначе, чем приложения.

Альтернатива - Вы можете копировать файлы, которые вы хотите развернуть в новую папку, а затем с помощью инструмента командной строки 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/