为啥我的 Sharepoint WebPart 部署(名义上),但仍无法添加到页面/表单?

Posted

技术标签:

【中文标题】为啥我的 Sharepoint WebPart 部署(名义上),但仍无法添加到页面/表单?【英文标题】:Why does my Sharepoint WebPart deploy (nominally), but is still not available for adding to a page/form?为什么我的 Sharepoint WebPart 部署(名义上),但仍无法添加到页面/表单? 【发布时间】:2015-08-27 20:16:11 【问题描述】:

我已经创建并“部署”了我最新的 Web 部件(Visual Studio 咧嘴笑着告诉我,“部署成功”)。

但是当我转到我们的 Sharepoint 站点和我的“沙盒”页面并对其进行编辑时,我看不到 WebPart。正如 Elements 文件所示,它应该可从“财务表格”类别中获得:

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/" >
  <Module Name="PostTravelExpenseWebPart" List="113" Url="_catalogs/wp">
      <File Path="PostTravelExpenseWebPart\PostTravelExpenseWebPart.webpart" Url="PostTravelExpenseWebPart.webpart" Type="GhostableInLibrary" >
      <Property Name="Group" Value="Financial Affairs Forms" />
    </File>
</Module>
</Elements>

但是,该类别没有我希望(或至少希望)看到的“PostTravelExpenseWebPart”:

我可能会省略什么?

更新

我什至在网页上处于编辑模式时,在选择“添加 Web 部件”链接之一后展开“类别”下方的“上传 Web 部件”部分。我不确切知道要上传什么(浏览文件时,文件对话框不会提示您它期望的文件扩展名),所以我在 flayer 上尝试上传 PostTravelExpense.ascx

它毫不犹豫地接受了它,但我在任何地方都看不到它(我也不知道为什么只有 *.ascx 文件就足够了,但同样,它期望哪个文件?)它不允许我上传整个项目文件夹。

更新 2

针对下面的评论,请注意项目的“程序集部署目标”属性 设置为 GlobalAssembyCache

【问题讨论】:

如果分类中有部分自定义webpart,您可以查看该部分。我总是通过命令部署 Web 部件,如果有必要,您也应该将其部署到 gac。最后你是否尝试使用共享点设计器添加 webpart 是的,我检查了所有类别,但都没有出现;对于以前的 Web 部件,我所要做的就是从 Visual Studio 部署它,然后转到我作为 Sharepoint 站点一部分的“沙盒”页面,对其进行编辑,然后将 WebPart 添加到页面中。我不知道您所说的“通过命令”是什么意思,或者我如何/为什么将其部署到 GAC。我也不知道如何或为什么要通过 Sharepoint Designer 添加 Web 部件。 【参考方案1】:

通过将一个工作项目与这个项目进行比较,我终于能够在没有“此页面上的 Web 部件或 Web 窗体控件无法显示或导入。找不到类型或它不是类型”的情况下部署它注册为安全的。”添加时间错误消息。

我要做的是检查工作项目中引用主命名空间的每个地方,并确保在这些相同的地方引用了先前未工作项目中的相应命名空间

这不仅需要更改 Visual Studio 的解决方案资源管理器树视图中可见的一些文件,还需要更改两个我只能通过搜索它们包含的字符串才能加载到编辑器中的文件,具体来说:

The ***.spdata** file, which I loaded up by searching for "SafeControl"
**Assembly.Info**, which I loaded up by searching for "AssemblyTitle"

对于一些人们认为会自动由 IDE 处理的事情,这肯定是很多令人费解的、头疼的和可怜的抱怨——当命名空间发生变化时,进行所有必要的更改,或至少通知编码员并提议这样做!或者,除此之外,至少给他一个比“无法显示或导入此页面上的 Web 部件或 Web 窗体控件。找不到类型或未注册类型”更好的线索一样安全。”当要放置到页面上的 WebPart 被证明无法放置时。

【讨论】:

以上是关于为啥我的 Sharepoint WebPart 部署(名义上),但仍无法添加到页面/表单?的主要内容,如果未能解决你的问题,请参考以下文章

添加 webPart SharePoint 2013 时列表不存在错误

SharePoint 中的 Silverlight WebPart

如何部署 SharePoint WebPart?

从一个 webpart 访问信息并在 sharepoint 2010 中的另一个 webpart 中使用它

Sharepoint Webpart 继承

等待加载 SharePoint Webpart - 时间问题