Intellisense无法识别控件模板中的Sharepoint.WebControl元素

时间:2009-09-18 12:34:14

标签: visual-studio-2008 sharepoint intellisense

我正在使用VS2008 Sharepoint模板(VSeWSS)生成的项目。目前,在使用我拥有的ASCX文件时,IntelliSense无法识别导入的命名空间。我不知道如何解决这个问题。

注意:在下面的每次修改中,导入SharePoint.WebPartPages工作正常,只有SharePoint.WebControls没有。

项目确实构建没有错误并正确部署。在部署后,删除<%@Register Tagprefix="SharePoint"...行会导致预期的“未知服务器标记”SharePoint:SPGridView'“错误。

我发现了类似的问题(例如Unrecognized Tag Prefix or Device Filter in Visual Studio 2008)但问题及其答案仅涉及网络项目。特别是他们说的是web.config文件。不是作为SharePoint模板的一部分创建的东西。

建议的解决方案和原因不起作用:

  • 创建web.config文件 - 此类项目中不存在文件
  • 添加对dll的引用 - 无明显效果

有关解决此问题的进一步指示或建议将受到欢迎。

<%@ Control Language="C#" AutoEventWireup="true"
   Inherits="HelloWorld1.UserTableDoom, HelloWorld1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=2ace7ea1e94310d3" %>
<%@ Register Tagprefix="SharePoint" 
   Namespace="Microsoft.SharePoint.WebControls"
   Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<SharePoint:SPGridView ID='fooGrid' runat='server'
   AutoGenerateColumns='false'
   DataKeyNames='user_id'
   DataSourceID='foo'>
...
</SharePoint:SPGridView>

修改 有趣的是,我可以添加WebPartPages命名空间,我在IntelliSense中正常工作。

我还注意到在创建一个全新的解决方案并将ASCX文件放入其中时。问题依然存在。 SharePoint.WebPartPages可以正常工作,但SharePoint.WebControls不能。

<%@ Register Tagprefix="WebPartPages"
   Namespace="Microsoft.SharePoint.WebPartPages"
   Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>

<WebPartPages:...>  -- works correctly.

4 个答案:

答案 0 :(得分:1)

我使用的代码与显示SPGridView相同,但是Intellisense没有问题。它确实在SharePoint中的单词Microsoft.SharePoint.WebControls上添加了奇怪的格式,但除此之外还可以正常工作:

<%@ Control Language="C#" AutoEventWireup="true" Inherits="QueryDemo.QueryDemoControl, QueryDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=5434e690be8749f6" %>
<%@ Register Tagprefix="WebControls" Namespace="System.Web.UI.WebControls" Assembly="System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" %>
<%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<SharePoint:SPGridView
    id="queryGrid"
    runat="server"
    DataSourceId="queryData"
    AutoGenerateColumns="false"
    width="100%"
    AllowSorting="True">
      <AlternatingRowStyle CssClass="ms-alternating"/>
</SharePoint:SPGridView>

确保在Visual Studio项目中引用Microsoft.SharePoint并尝试执行代码。如果网格显示,那么问题必须在Intellisense上。

答案 1 :(得分:0)

尝试安装Visual Studio Service Pack。

答案 2 :(得分:0)

尝试运行以下内容:

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv -resetsettings

您可能必须以管理员身份运行以获得最大效果。

答案 3 :(得分:0)

我也使程序集成为自己的行,它可以工作:

<%@ Assembly Name="Microsoft.SharePoint, Version......" %>

......是其余部分。