惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
C
Check Point Blog
博客园_首页
B
Blog
D
Docker
U
Unit 42
量子位
I
InfoQ
有赞技术团队
有赞技术团队
Martin Fowler
Martin Fowler
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
博客园 - Franky
美团技术团队
T
The Blog of Author Tim Ferriss
阮一峰的网络日志
阮一峰的网络日志
月光博客
月光博客
Vercel News
Vercel News
Recent Announcements
Recent Announcements
雷峰网
雷峰网
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Google DeepMind News
Google DeepMind News

博客园 - ocean

系统升级日记(3)- 升级SharePoint解决方案和Infopath 系统升级日记(2)- 升级到SharePoint Server 2013 系统升级日记(1)- 升级到SQL Server 2012 一边是招人难,一边是找工作难,这个世界真的很有意思 SharePoint2010-CustomAction中的ContentTypeId属性已经消失了 office2010和sharepoint2010可以下载了? 一个子目录里放100W个文件及SQL Server File Stream中放100W文件,会怎么样? Prism2.0之自定义ModuleCatalog(for Silverlight) Teched2008 DEV301 ADO.NET Data Service资料下载 Teched 2008课程:ADO.NET Data Service & UC开发概览 我的基于Silverlight2的相册,也刚刚升级到了RTW了。 很囧,请大家不要给我留言 在MOSS中给增强型RTF字段增加按钮 在MOSS中实现自动上传图片 在Windows Server2008中运行MOSS不能启动Excel Service的问题 我也谈谈执行力 微软新技术巡展活动 将网站从WSS2.0升级到WSS3.0的心得 借宝地宣传一下:海洋工作室sps2007版用户系统正式运行!
系统升级日记(4):如何快速的修改Infopath中的各种URL
ocean · 2013-12-26 · via 博客园 - ocean

摘要: 最近一段时间在公司忙于将各类系统进行升级,其最主要的目标有两个,一个是将TFS2010升级到TFS2013,另外一个是将SharePoint 2010升级到SharePoint 2013。本记录旨在记录升级过程中的一般性准备工作及在升级中可能存在的各种坑的解决方案。本记录会大量引用外部文章来作为解释说明,并不是一个step by step的指引,本文章并不适合小白用户而适合具有一定IT管理经验的人阅读。另外本文也并不保证完全正确。

本篇是我在升级过程中正好遇到的一个问题。

需求

      Infopath中通常使用了各种数据源,这些数据源本身都有URL,这些URL如何快速的改掉。

示例

                       

  1. 调用Web Services的数据源。URL以【http://reports.msfunds.com.cn】开头

    

     2. 连接到SharePoint列表的数据源,URL仍然是【http://reports.msfunds.com.cn】

   

     3. 发布的路径,仍然为【http://reports.msfunds.com.cn

     我遇到的一个场景,即在我将站点从SharePoint 2010升级到SharePoint 2013的过程中,我准备将所有的站点集从长域名改成短域名。也即我希望将所有的URL从【http://reports.msfunds.com.cn】更改为【http://reports】。

传统的更改方式

    传统的更改方式即一个一个的单独修改数据源和所有涉及URL的地方。但是这样会存在一个很严重的问题,就是我们需要重新设置所有数据源的参数,比如Web Services的方法参数,这些参数以前设置的是什么值我可能已经不记得了,而且重新设置每一个地方显然也过于麻烦。

更方便的方式

    我采取了一个更为简便的方法,众所周知,Infopath实际上是一个cab文件,在cab文件里面则是一堆xml文档。所以我打算直接更改里面的xml文档来解决此问题。

具体步骤

  1. 将XSN文件的扩展名更改为CAB。然后解压缩。提取出来的文件类似如下:

      

     2. 打开里面的manifest.xsf文件,然后将所有的【http://reports.msfunds.com.cn】替换成【http://reports】,所有的URL都位于manifest.xsf里面。然后保存此文件。

     3. 将这一大堆文件重新压缩回cab文件。我们可以使用自带的IExpress工具。

     

         1)         点击【下一步】,选择【Create compressed files only [ActiveX Installs]】,然后点击【下一步】。

          

         2)         点击【Add】,添加上所有的那一堆文件。然后点击【下一步】

        

         3)         选择好存储的路径,然后记得选中【Store files using Long File Name inside Package】,如果不选择这一项,那么文件都会变成短命名,就会出错。然后点【下一步】。

        

         4)         这一步可以选择【Don’t save】,点击【下一步】

        

         5)         将生成的CAB文件的扩展名再改回XSN,一切就OK了。

      实际上你还可以用命令行 工具makecab.exe来做同样的事情,但是makecab.exe不能直接压缩一堆文件,你还要先准备一个文件列表的描述文件,这未免过于麻烦,所以使用GUI工具有时更加方便。这样都做完后,再重新用Infopath打开,就发现所有的路径已经更改完毕了。