介绍升级现有的Umbraco版本的步骤
通用升级步骤
介绍版本升级的通用方法,使用该方法有可能会出现一些异常情况,这些异常情况的处理将在特定版本的升级方法里讲到。
注意事项:
首先升级过程中可能会出现一些无法预知的问题,所以在升级前要确保已经备份了已有网站的文件以及数据库,确保升级失败后可以恢复到可使用的已有版本。
其次,如果有比较大的版本改动(例如从v4升级到v6),要检查网站正在使用的扩展包是否兼容新版本,在你下载扩展包时,一般都可以找到其兼容的Umbraco版本信息。
复制文件:
下载要升级到的新版本的压缩文件,复制压缩文件中的以下文件夹覆盖已有的文件夹:
· /bin
· /install(不要忘记在升级完成后删除该文件夹)
改操作只针对7.1.0以下的版本, 在7.1.0及其更高版本中,该文件夹不在使用
· /Umbraco
· /Umbraco_Client
合并配置文件:
可能需要合并的配置文件包括:
· 在/Config文件夹下的文件
· Global.asax
· web.config (注意:不需更改versionnumber和已有的连接字符串,这些内容会在新的安装过程中被修改)
· 在极少数的情况下,可能还需要合并Views文件夹下的Web.config
在合并过程中,可以使用一些文件比较工具,官方推荐的是WinMerge。需要注意的是在/Config文件夹下,新版本可能会增加或者删除一些文件。
到6.0.0版本的时候,有必要更新ClientDependency.config文件中的版本号,这是为了清除在后台缓存的html/css/js文件。如果跳过了这一步,你可能在后台界面看到一些奇怪的行为。
合并UI.xml和语言文件
有些扩展包(例如Contour)会添加一些节点到UI.xml文件中,为使得扩展包可以正常使用,应确保将添加的节点合并到新的UI.xml文件中。该文件的地址是/Umbraco/Config/Create/UI.xml。
同样可能的更改还发生在一些语言文件中,语言文件的地址是/Umbraco/Config/Lang/*.xml。
最终操作
在完成了文件复制和配置文件更改后,打开网站,可以看到安装界面,按步骤完成安装后,版本更新就成功完成了。新的安装做了两件事:
· 更新web.config文件中的版本号
· 在有需要的情况下,升级数据库
潜在的问题和陷阱
· 浏览器缓存:由于浏览器缓存的存在,可能导致后台界面出现一些奇怪的行为,所以在升级完成后应手动清除下浏览器缓存。
· 模块加载顺序:UmbracoModule需要在UrlRewriteModule加载完之后加载, 这些模块定义在web.config文件的<system.webServer><modules>部分,正常情况下,配置文件应该是这样子的:
· <system.webServer>
· <validationvalidateIntegratedModeConfiguration="false" />
· <modulesrunAllManagedModulesForAllRequests="true">
· <remove name="UrlRewriteModule"/>
· <addname="UrlRewriteModule"type="UrlRewritingNet.Web.UrlRewriteModule,
· UrlRewritingNet.UrlRewriter" />
· <removename="UmbracoModule" />
· <add name=" UmbracoModule"type="Umbraco.Web.UmbracoModule,umbraco" />
· ... Other modules ...
· </modules>
· </system.webServer>
特定版本所需的额外步骤
多数情况下,我们可以通过通用步骤完成版本升级,但对于一些特定的版本之间的升级,可能还需要一些额外的步骤。
版本4.6.1 到4.7.1.1
· 删除bin/Iron*.dll
· 删除bin/RazorEngine*.dll
· 删除bin/umbraco.MacroEngines.Legacy.dll
· 删除bin/Microsoft.Scripting.Debugging.dll
· 删除bin/Microsoft.Dynamic.dll
版本4.7.1.1到4.7.2
· 删除bin/umbraco.MacroEngines.Legacy.dll
版本4.7.2到4.8.0
· 删除bin/App_Broswers.dll
· 删除bin/App_global.asax.dll
· 删除bin/Fizzler.Systems.HtmlAgilityPack.dll
版本4.8.0到4.10.0
· 删除bin/umbraco.linq.core.dll
· 复制/App_Plugins,/Views,global.asax
· 删除Config/formHandlers.config
更高的特定版本号的升级方法比较复杂,我们就不在一一赘述,可参考Umbraco官方文档: http://our.umbraco.org/documentation/installation/upgrading/version-specific