簡體   English   中英

Asp.Net中的子命名空間太多了? CS0234

[英]Too many sub-namespaces in Asp.Net? CS0234

在Asp.Net項目上工作,添加一個新的控件(ascx),遇到了一個奇怪的CS0234問題。 基本上,編譯器找不到完全限定的命名空間。 是什么使得它真正奇怪的是,有時它可以找到它,有時不能。 每次我進行構建時都無法在不同的文件中找到它。 也就是說,有時它會構建。 有時它會在文件a和b中找到它,但不能在c和d中找到它。 有時它會在a,b和c中找到命名空間,但不能找到d。 和其他所有的排列。

添加在類ClassName(ClassName.ascx和ClassName.ascx.cs文件)中定義的新控件。

路徑為:c:.. \\ Project \\ WebuserControls \\ ControlType

命名空間是Project.WebUserControls.ControlType

在整個項目中,我調用Project.WebUserControls.ControlType.ClassName.SomeMethod(); 當我編譯時,我得到錯誤“CS0234類型或名稱空間名稱'Project.WebUserControls.ControlType'在類或名稱空間'Project.WebUserControls'中不存在(你是否缺少程序集引用?)”即使它確實存在在該命名空間中。 此外,Intellisense無法找到命名空間或其中的任何內容。

c#文件是表單

namespace Project.WebUserControls.ControlType
{
    using System 
    ...etc
    public partial class ClassName : System.Web.UI.UserControl
    {

經過大量的谷歌搜索后,我找到了這個 ,這可能會導致一個解決方案。

在web.config中:

<system.web>
    ...
    <pages>
        ... 
        <namespaces> 
            <add namespace="Project.WebUserControls" />

有趣的是,如果我用namespace="Project.WebUserControls"替換namespace="Project.WebUserControls.ControlType" ,它將無法編譯。

這個修復工作大約半個小時,幾個版本,但現在已停止工作。 不,我沒有更改任何代碼使其停止工作。

有任何想法嗎?


幾個小時后:將ClassName(類和文件)分別移動到名稱空間和路徑中的一個級別似乎已經解決了問題。 也就是說,它現在位於命名空間Project.WebUserControls和路徑c:.. \\ Project \\ WebUserControls \\

不知道為什么會這樣。 路徑名稱遠低於255個字符。


第二天,再次破碎......沒有改變任何事情。

聽起來像vstudio / IIS所做的卷影副本沒有被正確地重建/使用。

嘗試內置的開發人員服務器(在vstudio中)或重新啟動IIS

聽起來更像是Visual Studio問題而不是C#/ .NET問題。

只是為了澄清:只有在你添加一些類然后嘗試訪問它之后才會得到這些錯誤,或者即使你沒有添加任何內容,也會在每次構建后隨機獲得這些錯誤?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM