系统升级日记(4):如何快速的修改Infopath中的各种URL
摘要: 最近一段时间在公司忙于将各类系统进行升级,其最主要的目标有两个,一个是将TFS2010升级到TFS2013,另外一个是将SharePoint 2010升级到SharePoint 2013。本记录旨在记录升级过程中的一般性准备工作及在升级中可能存在的各种坑的解决方案。本记录会大量引用外部文章来作为解释说明,并不是一个step by step的指引,本文章并不适合小白用户而适合具有一定IT管理经验的人阅读。另外本文也并不保证完全正确。
本篇是我在升级过程中正好遇到的一个问题。
需求
Infopath中通常使用了各种数据源,这些数据源本身都有URL,这些URL如何快速的改掉。
示例
- 调用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文档来解决此问题。
具体步骤
- 将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打开,就发现所有的路径已经更改完毕了。
最新文章
- mariadb:InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
- 【资讯】天啦鲁,这十余款创客设计居然由FPGA搞定 [转]
- 【leetcode】First Missing Positive
- LevelDB(v1.3) 源码阅读之 Arena(内存管理器)
- [转]DBA,SYSDBA,SYSOPER三者的区别
- HDUOJ--------A simple stone game(尼姆博弈扩展)(2008北京现场赛A题)
- linux权限管理_ACL权限
- Eclipse,IDEA自动生成相应对象接收方法返回值的快捷键
- Qt之进程间通信(共享内存)
- CURL模拟post请求上传文件
- uva1025 动态规划
- 【Unity与23种设计模式】命令模式(Command)
- SpringBoot报错
- sass进阶—变量运算
- IDEA创建Spring+SpringMVC+MyBatis(SSM)极简入门(上)
- 在docker中使用mysql数据库,在局域网访问
- ASP .NET MVC HtmlHelper扩展——简化“列表控件”的绑定
- JQuery中的$.getScript()、$.getJson()和$.ajax()方法
- Angular2入门体验
- LeetCode题解之 Search in a Binary Search Tree
热门文章
- 使用 xtrabackup 进行MySQL数据库物理备份
- SQL Server求解连续操作(登录)数量(次数)最大的记录(用户)问题
- spring管理bean
- Linux磁盘管理之实现多文件系统及VFS06
- [转]backbone.js template()函数
- Linux 中如何卸载已安装的软件(转载)
- java编程思想读书笔记2
- Codeforces Round #371 (Div. 2)E. Sonya and Problem Wihtout a Legend[DP 离散化 LIS相关]
- MYSQL基础知识总结
- Centos6 修改max user processes limits