在项目开发中遇到了这样的问题,需要将一个列表从网站A迁移到网站B中去。
查了很多资料,没有在MOSS的管理功能中找到实现的方法。
所以只能通过编程的方法来实现。

google了一下,网上只找到了3篇关于内容迁移的文章,方法是一样的,导出再导入。
三篇文章的链接如下:
http://sharepoint.orivers.jp/blogs/orivers/archive/2007/03/19/spexport.aspx
https://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1885455&SiteID=1
https://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=1460700&SiteID=17
对于迁移列表的功能,第三篇文章的内容比较合适。
如果是迁移网站,在SDK中,有相关的代码可供参考。

列表迁移的代码这里就不写了,上面的文章中有,我也是使用的这些代码。
这里要说明的是,使用上面的代码,迁移的列表在两个网站中必须是同名的。
举例,要将网站A中的列表list5迁移到网站B中去,迁移中还是会使用list5作为列表的名字。如果网站B中已经有list5存在了,就会出现错误。

这个问题困扰我2个多小时,尝试了多次也没有办法通过程序来解决,所以最后只能使用手工修改的方法。
步骤如下:
第1步:将网站A的列表导出为cab文件
第2步:解压缩cab文件,替换xml文件中的列表的名字。比如在网站A上是list7,在网站B上是list5,就将xml文件中的list7替换成list5。一般需要替换三个文件。
第3步:使用makecab将替换之后的文件再压缩成cab文件。这里提供一个ddf文件内容供参考。
.OPTION EXPLICIT
.Set CompressionType=MSZIP
.Set UniqueFiles="off"
.Set Cabinet=on
.Set MaxDiskSize=CDROM
.Set MaxCabinetSize=0
.Set FolderFileCountThreshold=0
.Set DiskDirectory1=d:\cab
.Set CabinetName1=export.cab
;FileList
00000000.dat
00000001.dat
00000002.dat
00000003.dat
00000004.dat
ExportSettings.xml
Manifest.xml
Requirements.xml
RootObjectMap.xml
SystemData.xml
UserGroup.xml
ViewFormsList.xml

第4步:在网站B上建立列表list5,创建时必须使用和网站A的list7相同的列表类型,比如,都是基于自定义列表创建的。。
第5步:将重新压缩的cab文件导入网站B。

这是我找到的唯一的办法。
也尝试过其它第三方的管理工具中的复制的功能,但是那个程序出现了错误,没有实现目标。

希望还能有更好的方法解决这个问题。

posted on 2007-09-10 11:20  半梦半醒之间  阅读(1070)  评论(9编辑  收藏  举报