升级场解决方案
上次修改时间: 2011年1月11日
适用范围: SharePoint Foundation 2010
本主题介绍如何更新场解决方案。
升级的两种方法
有两种方法可升级场解决方案。使用哪一种方法取决于在解决方案的较新版本中进行了哪些类型的更改。
替换:收回旧版本的解决方案,并从场解决方案存储区中删除该解决方案(可选)。然后,将新版本添加到解决方案存储区中并进行部署。新解决方案包(.wsp 文件)不必与旧版本具有相同的名称或 GUID,但如果收回旧版本,却并未将其从解决方案存储区中删除,则新版本必须具有不同的文件名和 GUID。如果新版本的解决方案在以下任一方面与已安装的版本不同,则必须 使用此类升级。
新版本删除了旧版本中的功能或添加了旧版本中不存在的功能。
新版本更改了功能 ID。
新版本更改了功能的范围。
新版本的功能接收器的版本发生了更改。
新版本添加了新 elements.xml 文件,删除了 elements.xml 文件或更改了现有 elements.xml 文件的内容。
新版本向 Feature.xml 文件中添加了新 Property 元素,从 Feature.xml 文件中删除了 Property 元素,或更改了 Feature.xml 文件中 Property 元素的值。
有关收回和部署的详细信息,请参阅卸载并收回场解决方案和在 SharePoint 2010 中安装和部署场解决方案。
更新:安装和部署的新版本的解决方案包的文件名与旧版本不同,但 GUID 与旧版本相同。Microsoft SharePoint Foundation 部署体系结构检测到 GUID 相同。它会在部署新版本前自动收回旧版本。如果解决方案中存在功能,则新旧版本将具有相同的一组功能,并且仍会激活它们,但其中的程序集和其他某些文件会更新为新解决方案包的版本。
每当成功升级解决方案时,都会对早期版本的解决方案进行备份并将其存储在配置存储区中。在升级失败时,解决方案框架将使用此备份。只为一个解决方案存储一个备份副本。
服务器场管理员可在 SharePoint Management Shell 中使用 Update-SPSolution 命令执行更新类型的升级。
以编程方式更新
以编程方式执行替换升级与以编程方式收回旧解决方案然后添加和部署新版本相同。若要以编程方式执行更新类型的升级,您的代码应调用 SPSolution.Upgrade() 方法的重载之一。若要运行此方法,解决方案存储区中必须存在解决方案。它可以已部署,也可以未部署。
如果该解决方案未部署,请调用 SPSolution.Upgrade(String) 方法来更新解决方案存储区中的解决方案。如果该解决方案已部署,请调用 SPSolution.Upgrade(String, DateTime) 方法来启动计时器作业进行升级。无论是哪一种情形,都会创建旧版本的解决方案的备份。