编译器错误消息:CS0246:当我重命名我的项目时

时间:2014-02-17 23:42:09

标签: c# asp.net asp.net-mvc asp.net-mvc-4

我重命名了我的项目,它会在之前编译,但是当我做了一些更改后,它因某种原因停止了工作

错误是

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

http://petermcintyre.com/topics/using-an-app-as-a-template-asp-net-mvc/

我找到了源文件

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

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

但当我尝试将Lab4更改为lab5并重新编译时,会发生同样的错误,并且该文件会被删除,而新的文件会出现相同的Lab4问题。

有谁知道答案?

5 个答案:

答案 0 :(得分:50)

当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>

重命名项目或更改其默认命名空间后,您必须在此文件中手动更改它。

答案 1 :(得分:3)

这可能是VS重命名时未更新的引用/路径。这很快又脏,但是如果你对旧项目名称的解决方案文件夹运行Grep并将其替换为新项目,然后在VS中重新打开并编译它应该可以解决你的问题。

答案 2 :(得分:0)

转到视图文件夹,打开Web配置,然后将名称空间更改为新的名称空间。

答案 3 :(得分:0)

如果您在Visual Studio中使用F2 / Rename重命名了项目,并且使用的是.NET Core,则还请检查:

/Views/_ViewImports.cshtml

执行深度搜索:(Ctrl + Shift + F),然后在Find what中添加您的旧名称空间。在Look in内,选择Current Project (Including External Items)

这应该向您显示更多未被Visual Studio自动重命名的文件。用新的名称空间手动重命名旧的名称空间。

小心盲目重命名!不是因为您重命名了项目,而是意味着它也重命名了文件夹结构!有许多有关旧文件夹结构的参考。我强烈建议逐步

重命名

Use Current Project Including External Items

答案 4 :(得分:0)

例如,如果您在Privacy.cshtml cs02046上遇到此错误, 只需转到此剃须刀页面Privacy.cshtml,将@model PrivacyModel更改为[YOUR_RENAME_NAMESPACE] .Pages.PrivacyModel