Почему классы в подпапках в моей папке App_Code не могут быть найдены правильно? - PullRequest
7 голосов
/ 01 октября 2008

Я получаю следующую ошибку, когда помещаю файлы классов в подпапки папки App_Code:

errorCS0246: не удалось найти тип или имя пространства имен 'MyClassName' (отсутствует директива using или ссылка на сборку?)

Этот класс вообще не находится в пространстве имен. Есть идеи?

Ответы [ 6 ]

19 голосов
/ 01 октября 2008

Вам необходимо добавить codeSubDirectories к вашему элементу компиляции в web.config

<configuration>
    <system.web>
      <compilation>
         <codeSubDirectories>
           <add directoryName="View"/>
         </codeSubDirectories>
      </compilation>
   </system.web>
</configuration>
16 голосов
/ 16 августа 2011

Проверка свойства файла BuildAction. Это должно быть установлено на «Компиляция»

1 голос
/ 08 ноября 2011

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

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

1 голос
/ 01 октября 2008

Возможно ли, что вы не установили папку как приложение в IIS (или на вашем веб-сервере)? Если нет, то используется код App_Code, который используется из папки parent (или следующего приложения вверх).

Убедитесь, что папка помечена как приложение и использует правильную версию ASP.NET.

0 голосов
/ 14 июля 2012

В Visual Studio (по крайней мере, 2010 г., но я также вспоминаю и прошлые версии) вы можете щелкнуть правой кнопкой мыши папку в обозревателе решений и выбрать «Включить в проект».

Затем на вкладке свойств для каждого файла (или выберите их все сразу) вы выбираете «Компилировать» для свойства «Построить действие».

Это сработало для меня.

0 голосов
/ 01 октября 2008

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

...