0

我已经创建并“部署”了我最新的 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

4

1 回答 1

0

通过将一个工作项目与这个项目进行比较,我终于能够在没有“此页面上的 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 证明不可放置时。

于 2015-06-12T23:16:40.563 回答