【问题标题】:Compiler Error Message: CS0246: when I renamed my project编译器错误消息:CS0246:当我重命名我的项目时
【发布时间】:2014-02-17 23:42:09
【问题描述】:

我重命名了我的项目,它之前可以编译,但是当我进行一些更改时,它由于某种原因停止工作

错误是

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 问题。

有人知道答案吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 这也适用于您可能已设置的其他区域中的 web.config 文件。
    【解决方案2】:

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

    【讨论】:

    • 我在解决方案资源管理器中进行了 cntrl h 搜索,尝试将 Lab4 替换为 lab5,但它说什么都找不到
    • 退出VS,它会忽略解决方案中的许多元文件。您想要做的是在整个文件夹(包括系统/隐藏文件)中使用旧项目名称,然后打开它在记事本中找到的任何项目并手动更改。只有完成了这些,你才能在 VS 中重新打开和编译。注意。始终首先备份解决方案
    • 如果您不熟悉Grep,请在谷歌上搜索BareGrep,这对您有帮助,它是一个小程序,非常易于使用,您不需要说明。
    • 此外,从您的解决方案中删除您的 /bin/obj 文件夹。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      /Views/_ViewImports.cshtml
      

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

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

      小心盲目重命名一切!!!不是因为你重命名了项目,这意味着它也重命名了文件夹结构!!!有很多关于旧文件夹结构的参考资料。我强烈建议逐步

      进行重命名

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-22
          • 1970-01-01
          相关资源
          最近更新 更多