четверг, 12 июня 2014 г.

Visual Studio исключить папки и файлы из Web-публикации (Web Publish)

Ситуация
Разрабатываю сайт на ASP.NET MVC
Уосновная часть сайта уже разработана, доделываю некоторые модули + поддержка.
По большей части скрипты и контент сформированы и не меняются (сюда же относится и фреймворки типа bootstrap и библиотеки типа jQuery, knockoutjs)
Но каждый раз публикация сайта занимает долгое время из- за перевыгрузки файлов с этими папками.

Задача
Исключить некторые папки из публикации веб-проекта на ASP.NET MVC

Решение
По простому - нужно внести некоторые папки как исключение в конфигурационный файл проекта.

Но сделать это оказалось не просто, особенно, если вы новичок в студии.
задача разбилась на 3 поздадачи, которые я тут и опишу.

1. Подготовить новую конфигурацию.

На солюшене (именно на солюшене, а не на проекте) выбираете "Configuration Manager ..." из контекстного меню.

Откроется окно менеджера конфигурации

В дропдауне "Active Solution Configuration" есть пункт "New". Выбираем и создаем новую конфигурацию с произвольным именем.

Для удобства есть возможности скопировать настройки с уже существующей конфигурации.

ок. КОнфигурация есть. Назовем её "Custom"


2. Настроить конфигурацию в проекте.

теперь наша задача внести изменения в .cproj файл для этого
2.1. Выгружаем проект. Выбираем "Unload project" из контекстного меню над проектом.
2.2. Открываем файл проекта. Для этого над выгруженным проектом выбираем "Edit [имя проекта].cproj"
2.2. Изменяем .cproj файл:
Ищем раздел
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == '[Имя вашей конфигурации]|AnyCPU'">
и добавлем в него строчки типа
<ExcludeFilesFromDeployment>File1.aspx;File2.aspx</ExcludeFilesFromDeployment>
<
ExcludeFoldersFromDeployment>Folder1;Folder2</ExcludeFoldersFromDeployment

в конце концов секция должна выглядеть примерно так
<PropertyGroup Condition='$(Configuration)|$(Platform)' == '[Имя вашей конфигурации]|AnyCPU' ">
  ... 

  <
ExcludeFilesFromDeployment>File1.aspx;File2.aspx</ExcludeFilesFromDeployment>
  <
ExcludeFoldersFromDeployment>Folder1;Folder2</ExcludeFoldersFromDeployment>
</
PropertyGroup>

2.3. Сохраняем .cproj файл
2.4. Загружаем проект в студию ("Reload project" из контектсного меню над проектом)

3. Указываем нужную конфигурацию для публикации.

Над проектом выбираем "Publish"
В окне публикации переходим в раздел "Settings" и выбираем нашу конфигурацию.

4. Собственно выполняем публикацию.


Ссылки по теме

Using Web.config Transformation in Web Site Projects
http://andrewtwest.com/2010/02/25/using-web-config-transformations-in-web-site-projects/

How to: Edit Project Files
http://msdn.microsoft.com/en-us/library/ms171487(v=vs.90).aspx

Комментариев нет:

Отправить комментарий