Visual Studio 2008中无法识别的标记前缀或设备筛选器
我有一组Web控件,它们位于由网站引用的程序集中。 我可以毫无问题地构建和运行所有内容,但是当我查看正在使用控件的aspx页面时,我在Tag Prefix下面得到一个绿色下划线。
所以在这个例子中,我在ControlLibrary下得到一个绿色下划线,当我将鼠标hover在它上面时,它表示无法识别的标签前缀或设备filter’ControlLibrary’
代码是在以前版本的Visual Studio中编写的,我还有另一个包含Web控件的程序集,它似乎工作正常。
关于什么可能导致问题的任何想法?
尝试将引用更改为web.config
,看看有什么错误,如果有任何结果? 以下是位置参考的根
更新 - 根据您的评论,尝试删除所有内容
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将其注册到不同的前缀,那么您将收到此错误消息。