将可视化 Web 部件部署到 SharePoint 2013(激活功能)时出错

Posted

技术标签:

【中文标题】将可视化 Web 部件部署到 SharePoint 2013(激活功能)时出错【英文标题】:Error deploying visual web part to SharePoint 2013 (Activate Features) 【发布时间】:2015-03-07 05:06:44 【问题描述】:

我正在尝试使用 Visual Studio 2013 将一个简单的 Web 部件部署到 SharePoint 2013,但出现以下错误:

部署步骤“激活功能”中发生错误:具有 Id 的功能 '....' 未安装在此场中,无法添加到此场中 范围。

花了很长时间试图找到解决方案。几个博客和论坛讨论它并提供不同的解决方案(没有一个对我有用)。

功能范围设置为站点,解决方案未设置为沙盒。

如果我选择跳过激活的选项,部署工作。但是当我转到站点设置并查看功能时,我找不到它。 (我查看了网站功能和网站集功能)。

我尝试在几个不同的地方更改权限。我将用户设置为网站所有者以及网站集管理员(尝试了主要和次要),但似乎没有任何区别。

我是 SharePoint 整个复杂世界的新手,因此缺乏确切的术语。在选择这个农场解决方案之前,我尝试使用沙盒,一切正常:我能够调试和部署。

我知道有一种使用 PowerShell 进行部署的方法,但我认为这不是理想的解决方案。

有什么建议吗?谢谢!

【问题讨论】:

您是否尝试过删除解决方案中的功能并重新创建它们? 我有,但每次部署它们时,我都必须通过 PowerShell 完成安装、禁用、启用的整个过程。发生这种情况一定是有原因的。 我的意思是在实际的 Visual Studio 项目中,删除并重新创建它们。您是否对解决方案包属性进行了任何更改? (更改了它们影响的服务器类型/在包中包含程序集之类的东西?)另外,您的解决方案是否引用了第二个 Visual Studio 项目中的功能? 【参考方案1】:

如果您跳过激活,您应该按脚本部署功能。

部署 Web 部件的步骤

1 - 在项目设置中转到 sharepoint 并为“Active Deployment Configuration”选择“No Activation”

2 - 部署项目

3 - 在管理外壳中运行以下代码(以管理员身份运行管理外壳)

 install-spfeature "yourProjectName_FeatureName"           /*exp: TEST.Webparts_Feature1*/

4 - 停用 - 激活“网站集功能”中的功能

【讨论】:

这不起作用,请尝试更改项目中的程序集版本并重新部署。 有点用。我能够使用 PowerShell 进行部署,但我认为这并不理想。部署后,我无法在网站集功能中找到它。它仅在我通过 PowerShell 激活后才出现。谢谢! 另外,当您部署项目时并不意味着您安装了功能。部署后,您需要安装功能。

以上是关于将可视化 Web 部件部署到 SharePoint 2013(激活功能)时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何将控件添加到 Web 部件(SharePoint、C#)?

使用 CSOM 进行初始部署后,将 SharePoint 列表 Web 部件添加到特定页面

重新安装/更新 SharePoint Webpart 解决方案

SharePoint 2010 Web 部件部署错误

将自定义 Web 部件部署到 SharePoint 2013

使用 sharepoint 2007 在 Gac 或 bin 中的 Web 部件 dll