Я недавно реорганизовал веб-приложение так, чтобы вместо всех файлов, находящихся в корне приложения, все было разделено на подпапки бизнес-сферы, а под ними - на папки по типу.Поэтому вместо:
- ~ / MasterPage.master
- ~ / Page.aspx
- ~ / UserControl.ascx
Структура теперь выглядит следующим образом:
- ~ / App / Common / MasterPages / MasterPage.master
- ~ / App / Common / Pages / Page.aspx
- ~ / App / Common / UserControls / UserControl.ascx
Все это довольно хорошо работает на моей машине, все компилируется и работает в режиме отладки или выпуска, однако при развертывании на тестовом сервере все происходитнемного грушевидной формы.Для развертывания я создаю MSI с использованием проектов _deploy
и _msi
в Visual Studio, затем запускаю MSI на тестовом сервере.
Пользовательские элементы управления, на которые ссылаются непосредственно из .aspx
, выглядят нормально,но если пользовательский элемент управления имеет дочерний пользовательский элемент управления, то возникают ошибки:
Каталог 'C: \ Inetpub \ wwwroot \ WebApp \ App \ Common \ MasterPages' не существует.Не удалось запустить мониторинг изменений файла.
Каталог 'C: \ Inetpub \ wwwroot \ WebApp \ App \ Common \ UserControls' не существует.Не удалось запустить мониторинг изменений файлов.
Каталоги не существуют на тестовом сервере, поскольку в них нет файлов для входа, все их содержимое во время сборки компилируется в библиотеки DLL, поэтому MSI не 'у меня нет файлов для копирования в них.Если я создаю каталоги вручную, тогда все начинает работать, даже если они пустые, поэтому одно очевидное исправление заключается в том, чтобы включить blank.html
или подобное в каждую папку, чтобы они создавались установщиком;другой вариант - поместить пользовательские элементы управления в один каталог со страницами, но все это похоже на то, как решается реальная проблема: зачем развернутому веб-приложению нужны эти каталоги, чтобы вообще существовать?
ИтакЕсть несколько вопросов, на которые я бы хотел получить ответы:
- Является ли это принципиально неправильным подходом, могу ли я ожидать появления подобных проблем в будущем из-за этой структуры каталогов в проекте?(И если да, то как лучше организовать приложение?)
- Есть ли способ настроить сборку так, чтобы ASP.net не нужно было «запускать мониторинг изменений файла»?(Это как-то связано с опцией «сделать скомпилированный веб-сайт обновляемым?»)
- Есть ли хорошая документация о том, как все это работает где-то, объясняющая, что это за проблема?