Пользовательское пространство имен в веб-приложении .NET

StackOverflow https://stackoverflow.com/questions/928220

Вопрос

Поэтому я написал несколько пользовательских классов и поместил их все в пространство имен, назову его «Сфера».

В моем файле aspx.cs codebehind я использую Sphere »; написаноЯ знаю, что это работает, потому что это работало всегда, пока я не скопировал этот проект в новую папку.Кроме того, даже когда я нажимаю «Просмотреть в веб-браузере», все работает отлично.

Просто Visual Studio 08 не распознает пространство имен, поэтому я не могу выполнить сборку без ошибок и, следовательно, не могу выполнить отладку.Спасибо за помощь!

редактировать:У меня есть пространство имен в папке App_Code в файле .cs.

Нет правильного решения

Другие советы

Ваши пользовательские классы находятся в отдельном проекте?Если да, возможно, вам придется добавить ссылку на этот проект.Если вы скопировали проект в новую папку, путь к вашей Sphere DLL/проекту в VS2008 может быть неверным.

Я вообще-то только что это понял:

Мои файлы .cs были настроены на «действие сборки:content», а не «компилировать». Я щелкнул правой кнопкой мыши + свойства всех моих файлов и изменил действие сборки, и теперь все работает!

Похоже на отсутствующую ссылку.

Есть ли в вашем новом проекте ссылка на проект, определяющий фактическое пространство имен Sphere?

Проверьте свои ссылки.Возможно, VS больше не находит их после перемещения папки приложения.

Похоже, что при перемещении файлов ссылки были нарушены.Если классы сферы находятся в отдельной dll, попробуйте удалить и повторно добавить ссылку.Если это просто файл .de, убедитесь, что файл в проекте все еще находится в относительном пути.

Вероятно, у вас возникла такая ошибка:

Не удалось найти тип или имя пространства имен «CustomClass» (вам не хватает директивы using или ссылки на сборку?)

А причина того, что типа не было в сборке, в том, что Код_приложения папка — это конкретная папка для Проекты веб-сайтов.Эти файлы компилируются во время выполнения, когда они развертываются на сервере, а не при сборке проекта.В Проект веб-приложения каждый файл имеет свойство Build Action.По умолчанию файлы классов имеют значение Compile.Но если класс создан в файле App_Code, он получает значение Content.и не компилируется при запуске в качестве приложения.
В конце концов, папка App_Code не предназначена для использования в веб-приложении.Или, как вы поняли, вы можете вручную изменить действие сборки на компиляцию.

Я нашел ответ, просматривая эти ссылки:

  1. Tangent Вишала Джоши — папка App_Code не работает с проектами веб-приложений (WAP)
  2. Для свойства «Действие сборки» установлено значение «Содержимое» для файлов классов в папке App_Code.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top