Сообщение об ошибке компилятора: CS0246: когда я переименовал свой проект

22

Я переименовал свой проект, и он скомпилировался раньше, но когда я внес некоторые изменения, он почему-то перестал работать

ошибка

Compiler Error Message: CS0246: The type or namespace name 'Lab4' could not be found (are you missing a using directive or an assembly reference?)

Я создал новый проект из шаблона Lab4 и переименовал его в lab5, выполнив следующие шаги.

Ссылка

Я нашел исходный файл

Line 28:     using Lab4;
Line 29:     
Line 30:     

Source File: c:\Users\Albert\AppData\Local\Temp\Temporary ASP.NET Files\rootb806faf\de1f1e7\App_Web_index.cshtml.a8d08dba.c_hu0onk.0.cs    Line: 28  

, но когда я пытаюсь изменить использование Lab4 на lab5 и перекомпилировать его, происходит одна и та же ошибка, и этот файл удаляется, а новый создается с той же проблемой Lab4.

Кто-нибудь знает ответ?

    
задан user2981393 18.02.2014 в 00:42
источник

2 ответа

44

Когда Visual Studio создает ваш проект, он автоматически добавляет свое исходное пространство имен в \Views\web.config :

<system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            ...
            ...
            ...
            <add namespace="OriginalProjectNamespace" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

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

    
ответ дан Caspian Canuck 27.06.2014 в 18:30
источник
  • Это также верно для файлов web.config в других областях, которые вы, возможно, настроили. –  murraybiscuit 06.07.2017 в 00:42
  • Это должно быть отмечено как принятый ответ. –  Liknes 16.05.2018 в 16:15
3

Это, вероятно, ссылка / путь, который VS не обновил при переименовании. Это быстро и грязно, но если вы запустите Grep против папки с решением для старого имени проекта и замените его на новый, а затем снова откроете и скомпилируете в VS, он должен решить вашу проблему.

    
ответ дан Jay Wilde 18.02.2014 в 00:56
источник
  • Я сделал поиск cntrl h в проводнике решений, чтобы попытаться заменить Lab4 на lab5, но он говорит, что ничего не найдено –  user2981393 18.02.2014 в 01:01
  • Выйдите из VS, он будет игнорировать многие метафайлы в решении. То, что вы хотите сделать, это Grep имя старого проекта во всей папке (включая системные / скрытые файлы), затем открыть все, что он находит в блокноте, и изменить вручную. Только после того, как вы это сделали, вам следует снова открыть и скомпилировать в VS. NB. ВСЕГДА РЕЗЕРВУЙТЕ РЕШЕНИЕ ПЕРВЫЙ –  Jay Wilde 18.02.2014 в 01:05
  • Просто чтобы быть полезным, если вы не знакомы с Grep, а затем google для BareGrep, это крошечная программа и очень проста в использовании, вам не понадобятся инструкции. –  Jay Wilde 18.02.2014 в 01:06
  • Кроме того, удалите папки / bin и / obj из своего решения. –  trailmax 18.02.2014 в 01:32
  • @trailmax Это то, что решило это для меня! –  Alternatex 24.05.2017 в 15:31