2010-02-17 2 views
39

Я пытался создать сайт динамических данных, используя VS 2010 RC. Попытка создать папку App_Code, куда я поместил бы класс LINQ to SQL, не удалась. Когда я выбрал 'Добавить папку ASP.NET', чтобы добавить папку, я имел возможности для создания только следующие папки:Папка App_Code отсутствует в VS 2010

  • App_GlobalResources
  • App_LocalResources
  • App_Data
  • App_Browsers
  • Тема

Что случилось с папкой App_Code?

ответ

35

Почему бы не создать еще один проект, библиотеку классов и разместить его там. Это, безусловно, лучший способ сохранить эти классы отдельно от остальной части вашего сайта.

Чтобы ответить на ваш конкретный вопрос о папке App_Code, он доступен в проектах WebSite в виде папки Asp.Net, на которую вы можете выбрать. Но из проекта веб-приложения вы можете просто создать новую папку и назвать ее App_Code, и она будет работать нормально. Это касается Visual Studio 2010 RC.

+0

Это демонстрационное приложение. Я хочу, чтобы это было как можно проще. – Vadim

+1

Я бы добавил еще один проект для ваших dal-классов. Это действительно не добавляет никакой сложности, и вы можете использовать его снова, если вам нужно сделать его более продуктивным. –

+1

Я согласен с этим предложением, но это действительно не отвечает на вопрос. –

2

Я также нашел это смешным, что его нет. Дело в том, что вам «не нужно» создавать папку App_Code, которую вы просто добавляете в новую папку.

В VS 2005 любой класс вне App_Code даст ошибку компиляции.

Так что я также хочу знать, почему они решили удалить это ограничение? Было ли это из-за людей, жаловавшихся на это, или изменилась концепция дизайна, и это было сочтено необходимым?

23

вы не можете/не должны добавлять папку App_Code в веб-приложение, потому что эта папка предназначена для компиляции времени выполнения asp.net, а проект веб-приложения предназначен для того, чтобы вы предварительно скомпилировали свой веб-сайт в dll, который вы можно найти в папке Bin и развернуть на ваш сайт. Если вы добавите это вручную, вы можете столкнуться с конфликтами имен, поскольку класс будет предварительно скомпилирован в dll, а затем asp.net снова попытается перекомпилировать во время выполнения.

Итак, для проектов веб-приложений вместо этого вы должны добавить папку под названием «CodeFolder», а затем добавить туда класс. Затем щелкните правой кнопкой мыши по свойствам этого файла класса и настройте его конфигурацию сборки для компиляции, а не для содержимого.

Я работаю над своим собственным веб-проектом на www.athenatennis.com.sg, и с такой же подготовкой пройду аналогичную кривую обучения.

+7

«вы не можете/не должны добавлять папку App_Code в веб-приложение, потому что эта папка предназначена для компиляции времени выполнения» Я думаю, что принятый ответ должен быть отредактирован, чтобы включить это. Это объясняет ** почему ** исходный вопрос - это плохой подход, а не просто предложение лучшей практики. @Chris Conway подразумевает, что нет проблем с созданием папки App_Code, но я лично был сожжен этим несколькими способами. – CrazyPyro

0

в VS 2010, вам необходимо создать решение, затем щелкните правой кнопкой мыши -> добавить новый веб-сайт, а затем, когда вы добавляете классы, Linq2Sql и т.д., против создаст папку App_Code для вас

0

Если вы хотите app_code папке, вы должны создать «веб-сайт ASP.NET». После этого, щелкните правой кнопкой мыши на веб-сайте (Solution Explorer) -> Добавить папку ASP.NET-> App_Code.

Если вы ищете папку app_code внутри «веб-приложения ASP.NET», вы теряете время.

0

Если вы создадите класс, он спросит вас, хотите ли вы добавить его в папку приложения.

3

Вы можете вручную создать папку App_Code и добавить свой класс внутрь. Одна вещь, которую вы должны принять к сведению, - это ... в свойствах файла, убедитесь, что значение Build Action установлено на Компиляция.

+0

Это очень важно! По умолчанию он не устанавливается для файлов классов вне папки App_Code, в веб-приложениях .NET 4.0+ (не уверен в более низких версиях). Это заставило все мои IHttpModules не компилироваться и не срабатывать при тестировании, пока они не были настроены на компиляцию. – Jacob

0

Очень просто добавить новый класс из Добавить новый элемент Visual Studio 2010 автоматически отобразит сообщение «Вы хотите поместить файл в папку App_Code». Просто нажмите «ОК». [Введите описание изображения здесь] [1]

Смежные вопросы