Visual Studio 2008中无法识别的标记前缀或设备筛选器

我有一组Web控件,它们位于由网站引用的程序集中。 我可以毫无问题地构建和运行所有内容,但是当我查看正在使用控件的aspx页面时,我在Tag Prefix下面得到一个绿色下划线。

    

所以在这个例子中,我在ControlLibrary下得到一个绿色下划线,当我将鼠标hover在它上面时,它表示无法识别的标签前缀或设备filter’ControlLibrary’

代码是在以前版本的Visual Studio中编写的,我还有另一个包含Web控件的程序集,它似乎工作正常。

关于什么可能导致问题的任何想法?

尝试将引用更改为web.config ,看看有什么错误,如果有任何结果? 以下是位置参考的根 tag添加的示例。 我喜欢这种方法,因为如果您使用图书馆的话,它会保持页面更清晰。 移动库引用后查看是否获得相同的结果。

     

更新 - 根据您的评论,尝试删除所有内容

Drive:\Documents and Settings\[User]\ApplicationData\Microsoft\VisualStudio\9.0\ReflectedSchemas

或短版本:

%APPDATA%\Microsoft\VisualStudio\9.0\ReflectedSchemas\

<%@ Import %>指令放在<%@ Register %>指令之上:

 <%@ Import Namespace="Microsoft.SharePoint" %> <%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %> <%@ Register TagPrefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> <%@ Register TagPrefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %> 

很难说原因是什么,但Visual Studio中的ASP.NET XML解析器经常遇到类似这样的问题。 以下是我找到的一些可能的解决方法,也许其中一些也适用于您:

  • 打开.aspx文件后,稍等一下。 VS需要片刻来解析文件并设置其IntelliSense;
  • 尝试在.aspx文件打开并在屏幕上编译项目。 成功构建通常可以解决这些问题。 如果这不起作用,请尝试重建项目甚至整个解决方案。 再一次 – 等一下。
  • 如果所有其他方法都失败了,请将标记前缀定义放在web.config文件中:

        

    当然,尝试重建等

不知道为什么会这样,但确实如此。 当我将一个listview控件的命名空间从MyProject.UI.ControlLibrary.Web更改为MyProject.UI.ControlLibrary并重新指定<%寄存器时,它工作正常。

在我的例子中,我发现如果控件程序集已经注册到web.config中的前缀,然后尝试使用@register将其注册到不同的前缀,那么您将收到此错误消息。