Проекты веб-развертывания ASP.NET: избавление от скомпилированных файлов - PullRequest
13 голосов
/ 15 января 2009

Я использую Проект веб-развертывания в Visual Studio 2008 для подготовки моего ASP.NET приложения (веб-приложение ASP.NET, не Веб-сайт ASP.NET) для копирования на несколько серверов. Я должен копировать файлы на локальные промежуточные серверы, на разные серверы через FTP, а иногда мне приходится получать их с серверов клиентов.

Итак, было бы неплохо иметь все файлы для развертывания в компактной форме без необходимости много сравнивать источник и место назначения. У проектов веб-развертывания есть эта приятная особенность: компилируйте все ваши файлы aspx и ascx в одну (дополнительную) сборку.

Я как-то узнал как избавиться от файлов-заполнителей aspx на сервере, теперь я хотел бы знать, есть ли (возможно, самодельный) способ избавиться от эти .compiled файлы .

Из Блог Рика Строля :

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

У кого-нибудь есть творческая идея, может быть, с помощью модуля / обработчика, который перехватывает проверку файлов .compiled в папке bin?

Ответы [ 8 ]

4 голосов
/ 31 января 2009

Файл .compile создается после предварительной компиляции при развертывании. Таким образом, у вас есть 3 варианта:

  1. Сохраните .compiled файл
  2. Не выполнять предварительную компиляцию и развертывание исходного кода
  3. Превратите это в веб-приложение вместо веб-сайта и скомпилируйте как сборку

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

2 голосов
/ 12 мая 2009

Мне также не нравятся скомпилированные файлы, но никто не пострадает, если они там есть. Так зачем?

1 голос
/ 13 мая 2009

Возможно, вы захотите взглянуть на Поставщики виртуальных путей ( КБ, как здесь ) в ASP.NET.

Кредит для этого предложения должен идти в Cheeso , и его сам отвеченный вопрос здесь:

Могу ли я получить развертывание типа «WAR-файл» с ASP.NET?

0 голосов
/ 27 июля 2011

Если вы публикуете свой код как обновляемый (в настройках публикации), эти файлы генерируются. Снимите это значение и опубликуйте. Это старый вопрос, который я знаю, но здесь нет четко определенных ответов.

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

Вы можете избавиться от файлов .compiled, используя инструмент aspnet_merge с опцией -r.

Удаляет скомпилированные файлы для основной сборки кода (код в папке App_Code). Не используйте эту опцию, если ваше приложение содержит явную ссылку на тип основной сборки кода.

0 голосов
/ 10 мая 2009

Я помню, что в те дни, когда я не мог создать веб-приложение с VWD Express, я использую скрипт nant для компиляции проекта в одну DLL и развертывания, что бы работало (поэтому мне не нужна полная VS для развертывания DLL тоже) , так что если вы действительно не хотите связывать свой проект с веб-приложением, возможно, это тоже путь для проверки.

0 голосов
/ 09 мая 2009

Добавьте «Исключить фильтр» в свой проект развертывания:

  1. В проекте развертывания.
  2. Щелкните правой кнопкой мыши по файлам содержимого.
  3. Нажмите «Исключить фильтр».
  4. Добавить "* .Compiled"
  5. нажмите ОК.

и на этом все.

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

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

Таким образом, вы должны скомпилировать файлы с использованием проекта веб-развертывания (не в одну сборку), поместить их в репозиторий, созданный для этой цели, и на каждом сервере просто выполнить обновление SVN для извлечения и сравнения файлов автоматически. .

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

...