2010年7月25日,星期日

双色球推荐一注升级(第3部分)–引入SPFeatureUpgrade套件

在本系列文章中:

  1. 双色球推荐一注升级(第1部分)– fundamentals
  2. 双色球推荐一注升级(第2部分)–一个样本玩
  3. 双色球推荐一注升级(第3部分)– introducing SPFeature升级套件 (本文)
  4. 双色球推荐一注升级(第4部分)– advanced scenarios
  5. 双色球推荐一注升级(第5部分)–使用PowerShell升级双色球推荐一注

这是我的双色球推荐一注升级系列中的第三篇文章。我想早些发布,但是(典型的开发人员)我被困在对我的工具做更多的工作上’我在这里介绍。回到‘双色球推荐一注升级基础’帖子中,我提到,尽管我们现在拥有用于版本控制和升级双色球推荐一注的强大框架(因此为将新双色球推荐一注/修改后的双色球推荐一注推出到我们的SharePoint网站提供了一个很好的工具),但是没有现成的工具可以帮助您管理这个过程。当人们开始关注双色球推荐一注升级时,这通常会使他们感到困惑–没有大量的重新部署/升级解决方案或停用/重新激活双色球推荐一注将不会触发升级事件(因为重新激活不是*升级*,设计使然!),并且SharePoint 2010不附带任何用户界面,STSADM命令或PowerShell cmdlet来执行此操作。换句话说,一种情况也称为“partner opportunity”!您得到的是API中的一系列方法– although it doesn’不要花太多时间将一个控制台应用程序放在一起,它将填补大部分空白 一些排列,并且处理失败的升级会有些复杂。无论如何,在我的世界里’选择以视觉方式做事总是很高兴的。

因此,就像 内容部署向导 填补了SharePoint的空白’的内容部署框架没有丰富的UI,我的 SPFeature升级套件 如果您开始在环境中进行版本/升级双色球推荐一注,则在Codeplex上使用on可能会很有用。该工具包作为WSP安装,所有源代码都在Codeplex站点上发布。

以下是Codeplex Blur的略微扩展版本– 可以单击任何图像放大。

套件中有什么

该工具包包括三部分:
  • Central Admin中的应用程序页面-管理员可以使用它来升级整个服务器场中任何范围的双色球推荐一注
  • 每个网站集的“网站设置”区域中的一个可选页面-可用于将双色球推荐一注升级(从而更新开发人员提供的双色球推荐一注)的责任下放给本地网站管理员。必须在每个站点上启用双色球推荐一注才能启用此双色球推荐一注。
  • [快来了] -一个PowerShell cmdlet,允许从脚本运行双色球推荐一注升级。 (这是最后一部分,由于我’已经实现了核心逻辑。)

应用程序页面允许您做的一件事是 有选择地 升级双色球推荐一注–可能是你不知道’t want 所有 网站或网站以在升级的双色球推荐一注中接收新双色球推荐一注。这些页面在每个双色球推荐一注实例旁边显示复选框,因此您可以控制在何处升级哪些内容。如果您打算‘phase’推出使用双色球推荐一注升级部署的新双色球推荐一注。

[边注–双色球推荐一注升级通常是开发人员主导的事情,因为它’开发双色球推荐一注的开发人员。如果开发人员没有使用管理页面(或PowerShell)的权限,那么显然需要与这样做的管理员进行某些通信。还请注意,正如我在 升级沙盒解决方案,双色球推荐一注升级概念不适用于沙箱,因为 所有 更新沙盒解决方案时,双色球推荐一注实例会自动升级。]

用法

中央管理页面

将更新部署到双色球推荐一注后,可使用此页面在整个服务器场中查找和升级双色球推荐一注的实例。该工具可从‘System Settings’具有中央管理员的区域:

CentralAdmin_FeatureUpgradeLink

然后,服务器场管理员可以选择范围(Farm,WebApplication,Site或Web),然后找到需要升级的双色球推荐一注实例(这在SharePoint API中使用了一组名为QueryFeatures()的方法)。在下图中,我选择了“ WebApplication”作为范围并单击“搜索”以显示结果–我得到了需要升级的不同Web应用程序中的双色球推荐一注表(即已部署但尚未升级的更新版本):

(单击任何图像以查看更大/更清晰的版本)
CentralAdmin_UpgradeWebApp双色球推荐一注 
我可以使用复选框有选择地升级某些实例,而不是其他实例(默认情况下,将全部升级,但这可以通过取消选择复选框来控制)。在下图中,我已经升级了先前找到的2个Web应用程序双色球推荐一注中的1个-所有双色球推荐一注实例的成功/失败结果显示在页面上:

CentralAdmin_CompletedUpgradeWebApp双色球推荐一注

在上面的示例中,所选双色球推荐一注现已升级。

为了在大型服务器场中使用时提供帮助,请使用Central Admin页面进行升级 网站或网站范围 双色球推荐一注和其他过滤器出现,使您可以限制查询的范围。 [边注- this uses some gratuitous jQuery to slide the filter controls in –我几乎可以听到几个服务器管理员(或Spence :))抱怨事情进展,但是,嘿,我’必须在某个地方练习!]。 因此,为了升级站点范围的双色球推荐一注,将出现一个选择器,用于选择父Web应用程序:

CentralAdmin_UpgradeSiteFeatures

同样,对于网络范围内的双色球推荐一注,您可以过滤父网站集:

CentralAdmin_UpgradeWebFeatures过滤

用法

网站设置页面
“网站设置”页面的工作方式非常相似,只是只能升级“网站”双色球推荐一注和基于Web的双色球推荐一注(在当前网站集中)。的‘COB.SharePoint.Utilities.SiteSettingFeatureUpgrade’必须针对每个网站集激活双色球推荐一注,该网站集应显示此页面的链接。启用后,可以从网站集的“网站设置”区域访问该工具:

SiteSettings_FeatureUpgradeLink

网站集管理员然后可以选择范围(例如网站或网站),然后找到需要升级的双色球推荐一注。在下图中,我选择了“ Web”作为作用域,然后单击“搜索”以显示结果:

CentralAdmin_UpgradeWebFeatures

和以前一样,我可以使用复选框有选择地升级某些实例,而不是其他实例(默认情况下,将全部升级,但这可以通过取消选择复选框来控制)。在下面的图像中,我已经升级了先前找到的4个Web双色球推荐一注中的2个-所有双色球推荐一注实例的成功/失败结果显示在页面上:

 FeatureUpgradeResult

概要

SharePoint 2010引入了版本和升级双色球推荐一注的双色球推荐一注,但没有’提供任何高级工具来管理此过程。一世’m为服务器场管理员和(可选)网站集管理员提供工具来执行此操作。在撰写本文时,PowerShell cmdlet形式的最后一部分仍在开发中,但应尽快提供。

该套件可从以下网站下载 http://spfeatureupgrade.codeplex.com/

10条评论:

路卡 说过...

那's a great feature! I'我刚刚使用它,就像一个魅力。

但是,在开发过程中如何进行频繁且部分升级的管理?我的意思是,我需要从1.0.0.0升级到1.0.0.1,但是在开发过程中,我将需要进行部分升级,这将导致最终的1.0.0.1组可部署双色球推荐一注。

Could I 回滚 an upgrade ?

克里斯·奥 'Brien 说过...

@Luca,

谢谢,很高兴您喜欢该工具。

那'这是一个很大的问题-在开发双色球推荐一注升级XML /代码时,确实确实需要测试*多个*双色球推荐一注升级迭代。你不能专门"rollback"进行这样的升级,但是通过将版本号还原为要使用的真实版本(例如1.0.0.1)并“重新安装”双色球推荐一注(即通过撤回/重新部署WSP而不是升级),最终结果是该双色球推荐一注将与当前双色球推荐一注内容一起安装在该版本上。然后,您可以将其用作双色球推荐一注的版本,以升级到其他环境。换句话说,SharePoint不会维护双色球推荐一注的历史版本's state.

那有意义吗?

谢谢,

克里斯。

路卡 说过...

是的,这很有意义。

非常感谢,
路卡

山姆·维纳布尔斯 说过...

克里斯,最出色的工作。如此有用的工具-简洁的用户界面,易于使用,对于使用SP作为开发平台的我们来说至关重要。'相信微软没有'不必为Central Admin自己写这样的东西!

克里斯·奥 'Brien 说过...

谢谢山姆:)

未知 说过...

有谁知道为什么在网络范围内发生这种情况?

Farm / WebApp / SiteCollection Scope运作良好,但是WebScope对我所有的网站集都会给出此错误've tried.

Unable to access web scoped feature (Id: 00bfea71-d1ce-42de-9c63-a44004ce0104) because it references a non-existent or broken web (Id: 581e2333-fc2d-43e3-8cb0-96a3db718145) on site 'http://lenzeweb-test.lenze.com/app/akb'. Exception: System.Threading.ThreadAbortException: Thread was being aborted.
在System.Threading.Thread.AbortInternal()
在System.Threading.Thread.Abort(Object stateInfo)
在System.Web.HttpResponse.End()
在Microsoft.SharePoint.Utilities.SPUtility.Redirect(字符串url,SPRedirectFlags标志,HttpContext上下文,字符串queryString)
在Microsoft.SharePoint.Utilities.SPUtility.RedirectToAccessDeniedPage(HttpContext上下文)
在Microsoft.SharePoint.Utilities.SPUtility.HandleAccessDenied(HttpContext上下文)
在Microsoft.SharePoint.Utilities.SPUtility.HandleAccessDenied(异常异常)
在Microsoft.SharePoint.Library.SPRequest.GetAllWebsOfSite(String bstrUrl,Object& pvarWebs, Object& pvarWebIds, Object&pvarParentWebs,对象& pvarLangs, Object& pvarTitles, Object&pvarUIVersions,对象 & pvarFlags, Object&pvarWebTemplates,对象&pvarConfigurations,对象&pvarMasterUrls,对象&pvarCustomMasterUrls)
在Microsoft.SharePoint.SPSite.SPWebCollectionProvider.GetWebsData(String []& strNames, String[]&strServiceRelUrls,Guid []& guidWebIds, Int32[]&n语言,字符串[]& strTitles, String[]&strDescriptions,字符串[]&strCreationTimes,字符串[]&strModifiedTimes,布尔值[]&bUserIsWebAdmins,Int32 []&nWebTemplates,Int16 []&nProvisionConfigs,Int16 []&nMeetingCounts,Int32 []&nUIVersions,Int32 []& nFlags, String[]&strMasterUrls,字符串[]&strCustomMasterUrls)
在Microsoft.SharePoint.SPWebCollection.EnsureWebsData()
在Microsoft.SharePoint.SPWebCollection.get_Item(向导ID)
在Microsoft.SharePoint.SPFeatureEnumeratorBase.GetCachedWeb(SPSite网站,Guid webId,Guid featureId)

安东森 说过...

" [快来了] -一个PowerShell cmdlet,允许从脚本运行双色球推荐一注升级。 (这是最后一部分,由于我’已经实现了核心逻辑。)"

...即将推出? ;-)

克里斯·奥 'Brien 说过...

@安东森

这已发表在本系列的第5条文章中- http://www.milwaukeeticketsblog.com/2010/08/feature-upgrade-part-5-using-powershell.html

干杯!

克里斯。

丹尼斯 说过...

克里斯出色的工作和出色的文章。这对我很有帮助。
SPFeatureUpgrade工具包可在SharePoint 2013上使用吗?

克里斯·奥 'Brien 说过...

@丹尼斯

我没有'在SharePoint 2013上进行了测试,但是'如果工具不起作用,那么要使该工具在那里工作就需要太多工作'(假设您具备开发技能)。

SP2010 / SP2013之间的双色球推荐一注框架中的更改相当小-所以我不't believe there'会阻碍这种情况的任何事情。

祝一切顺利,

克里斯。