Не публиковать определенную папку в ASP.NET - PullRequest
2 голосов
/ 22 апреля 2009

Можно ли исключить папку в веб-проекте из публикации? У нас есть некоторые документация и сценарии, которые включены в определенную папку проекта и добавлены в проект, но когда я делаю публикацию VS, я не хочу, чтобы они поднимались на рабочий сервер.

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

Ответы [ 8 ]

3 голосов
/ 06 августа 2013

Старый вопрос, но я обнаружил, что если я отмечаю папку как hidden в проводнике Windows, она не отображается / не публикуется в вашем решении.

Это хорошо, например, для предотвращения включения оригинальных изображений в фотошопе в загрузки, которые не используются и являются большими. Что-нибудь более сложное, хотя вы, вероятно, захотите написать свой собственный инструмент публикации.

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

Это точно не отвечает на ваш вопрос, но я чувствую, что, если вы не являетесь одним разработчиком, публикующим на сервере, вам было бы лучше делать сборки на выделенной рабочей станции или сервере, используя MSBuild (или какую-то другую сборку и развертывание решения) напрямую (и, таким образом, сможет очень детально контролировать то, что идет в производство). MSBuild может не только создавать, но и использовать некоторые расширения (включая типы с открытым исходным кодом), он также может развертываться. У Microsoft есть продукт под названием MSDeploy в бета-версии, и это может быть даже лучшим выбором, но, не имея опыта работы с ним, я не могу сказать наверняка.

В нашей ситуации у нас есть виртуальная рабочая станция в качестве блока сборки, и все, что нам нужно сделать, - это дважды щелкнуть командный файл, который запускает проект MSBuild. Он маркирует весь код с помощью VSS, получает последнюю версию, создает решение и затем развертывает его на обоих серверах. Мы развертываем именно то, что хотим развернуть, и ничего более. Мы очень довольны этим.

Единственным недостатком, если его можно считать недостатком, является то, что по крайней мере один из нас должен был научиться пользоваться MSBuild. Сама VS использует MSBuild.

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

Для файлов, которые вы не хотите открывать, зациклите свойства и установите для параметра «Копировать в выходной каталог» значение «Не копировать»

Однако этот параметр недоступен для каталогов.

0 голосов
/ 09 августа 2014

Выберите все файлы, которые не должны публиковаться.

Перейти к свойствам Задавать Действие по построению -> Нет

enter image description here

Необходимо повторить процесс для каждого подкаталога.

0 голосов
/ 27 января 2012

Согласно http://www.mahingupta.com/mahingupta/blog/post/2009/12/04/AspNet-website-Exclude-folder-from-compilation.aspx вы можете просто присвоить папке «скрытый» атрибут в проводнике Windows, и она не будет публиковаться. Я проверил это, и это работает для меня.

Похоже на простое решение для быстрых и грязных целей, но я не думаю, что оно будет проходить через наш контроль версий (Mercurial).

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

Возможно, есть гораздо лучшие способы решения этой проблемы, но когда мы опубликуем сборку для наших серверов разработки, мы запустим пакетный файл, когда сборка будет завершена, чтобы удалить ненужные папки и web.configs (поэтому мы не переопределяйте уже развернутые).

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

Насколько мне известно, единственный способ сделать это - исключить его из проекта, опубликовать, а затем повторно включить в проект. Это может быть проблемой.

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

Не можете ли вы исключить их из проекта через визуальную студию, чтобы остановить их публикацию. Они все еще будут существовать в файловой системе

...