2007年12月17日,星期一

使用SharePoint内容部署向导

因此,如果您已阅读有关该工具的早期文章(介绍SharePoint内容部署向导何时使用SharePoint内容部署向导),并认为这是一个有用的工具,让我们进入下一个细节层次。一般来说,内容部署向导“可以正常使用”,但是如果您想了解更多有关不同选项的信息,请继续阅读。这篇文章最后包含参考信息和一些部署方案的指南。

首先,让我们提醒自己一些使用内容迁移API(该工具使用的基础SharePoint API)移动内容时要记住的基本知识:

  • 可以评估所选内容的依存关系(例如,引用的CSS文件,母版页)-在工具中,它们会自动包含在导出中-选中“排除所选对象的依存关系”以禁用此功能
  • 所有必需的内容类型,列等均自动包含在导出中
  • in contrast to STSADM export, it is 可能 to retain GUIDs during 部署 (where objects are 不 being reparented) - check '保留对象ID和位置' to enable this
  • 没有部署文件系统文件(程序集,SharePoint解决方案/功能等)-目标必须已经存在这些文件才能成功导入
  • 内容迁移API无法捕获以下内容-警报,审核跟踪,更改日志历史记录,回收站项目,工作流任务/状态

特别是第二点和第三点使API(和向导)成为在SharePoint中部署内容的好方法。

可以部署什么?

The Content Deployment Wizard 所有ows any 内容 to be selected for export - 网站集s, webs, lists/document libraries, folders, right down to individual list items 和 files. Objects in the treeview can be 加ed to the export by right-clicking them, which for a web, brings up a menu shown below:



这些解释如下:

  • '包括所有后代'-导出容器及其下面的任何东西
  • “排除后代”-仅导出容器
  • 仅在网络上,显示“包括内容后代”选项-这将包括所有即时 内容 例如列表/库,但将排除所有 子网 在网络上。

请注意,在导入时,向导将引入 所有 所选.cmp文件的内容-无法部分导入软件包。因此,如果不同的内容需要不同的导入选项,则应将导出分成单独的块。

出口 options

在导出设置屏幕上,可以将许多选项应用于导出:

  • “排除所选对象的依存关系”-默认情况下,内容迁移API会自动包括您选择的依存对象。这可以包括CSS文件,母版页,图像等,还可以包括在导出中包含的页面上显示的列表项。可以使用此复选框将其关闭,以便 只要 您选择的对象将被导出。
  • 'Export method' (options are 'ExportAll', 'ExportChanges') - for now 出口All is the option to select, ability to export changes 只要 will come in a future release
  • “包含版本”(选项为“ LastMajor”,“ CurrentVersion”,“ LastMajorAndMinor”,“全部”)-应该不言自明
  • “包含安全性”(选项为“无”,“ WssOnly”,“全部”)-请注意,由于安全性是在Web级别定义的,因此实际上选择了较小对象(例如列表)的包含安全性选项之一导出整个网络的安全性。 “ WssOnly”和“全部”都导出SharePoint项目级对象权限,因此,例如,如果您使用SharePoint组来管理安全性,那么实际的权限和组都将被继承,并且您可以添加一组不同的用户/ AD组在目标上。看到 迁移安全信息 在MSDN上获得更多详细信息。

导入选项

在导入中,我们还有几个选项,其中一些对应于在导出中选择的选项:

  • “导入Web URL”(实际上显示在“绑定到网站”屏幕上)-用于进行父项操作 只要。 如果您只是将内容从源移动到目标,但是 更改结构中的位置,此文本框可以保留为空白。或者,对于要导入网站或列表但父网站与目标网站不是完全相同的网站的操作,应输入新的目标网站URL的URL。

    Note that the later option to '保留对象ID和位置' should 重新设定时选择,因为在这种情况下我们要更改位置。
  • “从单个文件” /“从多个文件”选项-向导始终在启用文件压缩的​​情况下导出,因此,导出超过25MB的内容时,文件将在此阈值下拆分为多个文件。从此类导出导入时,选择“来自多个文件”选项并浏览到该文件夹​​。在文本框中,输入“基本文件名”-这应该是第一个文件的名称,不带数字,例如“ MyExport.cmp”而不是“ MyExport1.cmp”。 
  • '保留对象ID和位置”-此设置需要特别注意。在一个数据库(即SP 网页应用程序)中不允许使用重复的GUID,因此选择通常取决于您要导入的内容。如果您要从开发到生产都使用一个站点,则目标GUID尚不存在,因此,请选中该框以确保在两个环境中为这些对象分配相同的ID,并保留所有链接。如果要重新创建列表或网站,则将其保留为未选中状态,以便分配新的GUID,因此可以更改位置。

    I 高度 建议您阅读文章末尾“有用链接”部分中列出的内容,以正确了解此设置。
  • “包括安全性”-允许在包中导入安全性信息,假设在导出时选择了包括安全性的选项之一
  • 'Version updates' - 所有ows control over whether new versions should be 加ed to existing files, or whether the existing version should be replaced etc.
  • “用户信息更新”-允许控制是否应导入“上次修改的”信息。通常,只有在源和目标中存在相同的用户集时,这才有意义

场景快速参考

下表列出了给定部署任务的最常用设置:

部署项目

典型设定

整个网站集
  • 网站集应首先在目标上创建。
  • 导出时,选择“包括所有后代”。
  • 首次导入时,请确保选中“保留对象ID和位置”。
  • 如果您希望部署对象权限和用户,请选择“包括安全性”选项之一
网页
  • 导出时,选择“包括所有后代”。
  • 首次导入时,请确保选中“保留对象ID和位置” 如果网络与源具有相同的父项。
  • If web will have a different parent, do 不 check 保留对象ID 和 locations' 和 ensure 'import web URL' is specified
文件库/清单
  • 导出时,选择“包括所有后代”。
  • 首次导入时,请确保选中“保留对象ID和位置” if列表的父级与源上的父级相同(即不重新父级化)。
  • 在后续导入中,如果未导入到根网站,请确保指定了“导入网站URL”,并且不要选中“保留对象ID和位置”
文件/列表项
  • 确保目标目录中存在父库/列表
  • 如果目标上已经存在该项目,请勿检查“保留对象ID和位置”

 

因此,希望这是一些有用的参考信息。最后要说的是,具有改进的Treeview性能的下一个Beta版本应该在下一周左右准备就绪!

有用的链接

96条评论:

匿名 said...

这是一种有用的工具。我尝试了一下,并设法将MOSS站点从一台服务器部署到另一台服务器,而没有任何问题。

我确实有一个问题。该工具何时只能将完成的“更改”部署到某个站点,而不是完整的站点部署?

克里斯·奥'Brien说过...

嗨,艾伯特,

感谢您的反馈。 In terms of deploying 增加的 changes, this is something I'd definitely like to 加 - it's useful to hear other people would find this useful.

There are some tidy-up bits ahead of this in the queue, but I'll 加 it to the list of things to consider. Afraid I can't make any promise on the date though, realistically it could be a month or two.

谢谢,

克里斯。

匿名 said...

很棒的帖子,它看起来像是一个有用的工具。一个问题:如果使用该工具进行初始部署(例如,到新的生产站点),是否仍可以使用SP内容部署作业来安排后续部署?

克里斯·奥'Brien说过...

嗨Maina,

是的,因为使用了相同的基础API,这绝对可以。一项规定是,在向导中,选中部署时标记为“保留对象ID和位置”的框。这样可以确保您站点中的对象在源和目标中都具有相同的ID-内容部署作业希望是这种情况。请参见“混合部署,保留和保留对象身份” Stefan的内容迁移API“常见问题”发布 有关更多背景信息。

干杯,

克里斯。

匿名 said...

嘿克里斯,

我们希望能够将同一主站点的多个副本部署到同一Web应用程序上的多个网站集。当前,当尝试执行此操作时,我们会收到一条消息,指示数据库中存在重复的对象ID。

谢谢,我希望很快能收到您的回音。

克里斯·奥'Brien说过...

嗨,艾伯特,

Yes, SharePoint will 不 let you store two objects with the 相同 ID in one database. I'm wondering if you are selecting the '保留对象ID和位置' checkbox when importing - in this scenario, I 认为 you should NOT be.

HTH,

克里斯。

匿名 said...

克里斯,你好

我正在尝试导入完整的网站集,但是在导入时遇到了模糊的错误。

导入失败,并显示:
FatalError:名称空间“ urn:deployment-manifest-schema”中的元素“ Field”不能包含文本。

从日志中看,似乎失败的元素是WorkflowTasks / NewForm.aspx

我正在尝试迁移PublishingSite,但我读到某个地方需要创建一个空白站点作为要部署的初始模板,但这似乎无济于事。

有任何想法吗?

谢谢,

贾斯汀

克里斯·奥'Brien说过...

嗨贾斯汀,

嗯,那是很模糊的,以前没听说过。但是,您说的没错-内容部署 确实 要求使用空白网站定义创建目标网站。由于它还要求源站点/目标站点都基于 相同 定义,这意味着在开发中创建站点时也应选择空白。

这是SharePoint中内容部署的一个小技巧,我可能应该在提醒人们时更加明确。简而言之,在您的情况下,我可能会期望事情会失败,但是会出现不同的错误消息(表明我刚才所说的)。可能这实际上是您的问题。

我想我曾经看到一些有关如何将一个站点定义移至另一个站点的提示-建议进行搜索。

HTH,

克里斯。

匿名 said...

克里斯你好! 谢谢 for this useful tool. It would be good if it could 出口 folders from a particular document library, 和 import these files to a document library with a different name nudge nudge wink wink.

克里斯·奥'Brien说过...

嗨Zarek,

有趣。我打算很快就增强重用选项,所以可能不会太遥远。

感谢您的反馈。

克里斯。

未知说过...

我已经能够成功导出网站(dev2)集合。

当我这样导入时:
网站网址:http:// server / sites / dev2
导入网址http:// server / sites / dev / dev2

它完成时没有错误或警告,但是当我浏览到../sites/dev/dev2时,那里什么都没有。有什么建议?

尼尔说过...

克里斯,您好,该工具看起来很有帮助。感谢您花费大量的业余时间来构建它并解释其工作原理。

作为Sharepoint的新手,但他正在为客户构建加速器(本质上是为某种类型的公司创建模板以供他们部署和填充内容),我正在寻找任何陷阱。

目前,我正计划大量使用站点列,编程事件和内容类型,并且可能会预加载其中的某些数据进入客户端站点。

从您所说的开始,我应该从一开始就空白,然后将a部署到其旁边的干净网站集中。

Incremental updates should be less of a challenge although I can imagine a scenario where I go in, deploy to dev >> build 内容 >> deploy staging >> deploy to production.

在我潜入之前,任何需要研究的想法/事情都将不胜感激。自VS 2003以来就没有编码,因此使用内容部署API有点令人生畏。如果可能的话,我会尽量避免。

干杯

尼尔

克里斯·奥'Brien说过...

嗨,Juha,

我怀疑自从您导出网站集以来,这将导入到/ sites / dev2。

如果是这种情况,则可能只需选择 根网 您可以在层次结构中移动网站,但是目前,在树视图中选择根时,您需要选择 网站集。无法像网站一样重新设置网站集的父级(更改层次结构中的位置)。

解决此问题的方法是从/ sites / dev2进行第二次导出,然后在导入时,输入所需真实位置的导入Web URL。然后,您可以在/ sites / dev2上删除该站点。

希望这应该工作正常。我还建议您检查导入日志文件,以查看该站点实际上是否由于其他原因而没有导入。

HTH,

克里斯。

克里斯·奥'Brien说过...

嗨,尼尔,

感谢您的反馈。

我希望您应该能够在这种情况下使用该工具。不过,在大多数情况下,我看到该工具与解决方案/功能结合使用可以部署相当复杂的站点。内容迁移API(因此是向导)无法部署 所有 SharePoint网站的组件,因此文件系统资产(例如进入12文件夹的程序集/文件等)应与解决方案/功能一起部署。通常,您需要先导入这些内容,然后再导入内容,因为否则导入将失败,并报告目标站点上不存在源站点中的某些内容(例如功能)。

建议看看我在2007年发表的一些文章,以获取有关解决方案/功能的信息。

HTH,

克里斯。

加思说过...

这个工具很棒,谢谢!
我花了1.5天时间来处理随机的stsadm导入/导出问题,而从找到您的工具到将我的站点从Dev迁移到Test Environment仅仅花费了1个小时。谢谢。

我的发现:
- I 加ed a new column 和 内容 to the Test Server 和 then redployed a site from Dev. The column 和 内容 on the Test Server remained after the site was redeployed.

几个问题:
1)数据库发生了什么?例如,如果我在目标服务器上有一个用于网站集的内容数据库,但仅从源服务器导入一个子站点,是否将为目标服务器上的导入子站点创建一个新的内容数据库?还是将内容添加到现有目标服务器的内容数据库中?或者是其他东西?

克里斯·奥'Brien说过...

加思

感谢您抽出宝贵的时间来反馈。您对STSADM导出的经验基本上是促使我编写该工具的原因;-)是的,因为向导允许 可选择的 部署项目时,不应意外覆盖目标环境上的任何内容。

In terms of databases, 内容 will be 加ed to your target site's existing 内容 database.

HTH,

克里斯。

匿名 said...

嘿克里斯,
喜欢这个概念,但我无法使它起作用。我想也许我只是在以新手的身份理解SharePoint的一些错误。我正在尝试将一些列表从一台服务器上的站点移到另一台服务器上的站点。我导出列表,包括家属..不用担心。这是Beta 2

然后,我将cmp文件移动到新服务器可以访问的共享上。原始网址为:
http:// Server1 / PWA / Reporting
我在服务器2下创建了一个新网站:
http:// Server2 / PWA / Reporting

导入时,我选择cmp文件并将站点URL设置为:
http:// Server2 / PWA / Reporting并运行它。...失败,并显示“文件列表/问题无法导入,因为其父网站/ EPM报告不存在”-我尝试使用网站URL和导入网站URL,以及保留ID选项。...基本上,它总是会因上述错误消息的某些版本而失败...您能告诉我我在做什么错吗?

提前谢谢了

克里斯·奥'Brien说过...

嗨罗斯,

这是一个有趣的错误,因为这表明重用指令不太正确(因为它试图导入到“ / EPM Reporting”而不是“ / PWA / Reporting”)。您需要的参数集是:

-不要检查“保留对象ID和位置”
-如果您不导入目标网站上的根网站,请输入网站的“导入网站网址”

但是,实际上,我认为主要原因是因为您的测试版为beta2。ContentMigration API目前存在一些重大已知问题-如果您感到惊讶, 没有 得到错误。有特定的原因为什么您在RTM之后1年以上仍在使用此版本?

克里斯。

匿名 said...

抱歉...我应该更清楚了。 Beta版指代代码库,而不是项目服务器安装...。

感谢您的回应。将尝试您说的内容并重新获得您的意见。...服务器本身目前正在玩游戏,因此可能与它有关!

干杯
R

克里斯·奥'Brien说过...

嗯,向导的beta 2!抱歉,应该意识到你的意思是:-)

如果您仍然遇到问题,请与我联系。

干杯,

克里斯。

匿名 said...

克里斯你好,

我有与罗斯上一篇文章相同的问题。
这仅发生在某些特定的网站上。
这可能是由于SharePoint错误引起的吗?

克里斯·奥'Brien说过...

@sh,

它的 可能 这是由SharePoint错误引起的-特别是如果您没有SP1和内容部署的最新修补程序。但是,只有当父网站确实不在时,我才看到此特定消息。您确定目标网站上存在父网站吗?另外,是否在目标上执行了任何导入操作而没有保留对象ID(也许通过使用STSADM导入?)-这可能会导致父网站在那儿,但GUID不同,这可能会使问题感到困惑。

HTH,

克里斯。

匿名 said...

克里斯,你好
我正在为项目使用内容部署API。
有什么办法可以将cab文件的大小增加到25 mb以上。
因此,API不会破坏文件...

谢谢
阿杰

克里斯·奥'Brien说过...

@阿杰

您可以为此使用SPExportSettings.FileMaxSize属性。看到 http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.deployment.spexportsettings.filemaxsize.aspx 更多细节。

HTH,

克里斯。

匿名 said...

我对功能激活有疑问。我需要激活功能吗?或者如Stefan的文章所述,PRIME会自动讲述激活功能的故事。他们只需要安装。

请您澄清一下。

克里斯·奥'Brien说过...

@Tajeshwar,

Stefan是正确的-PRIME /内容部署将激活目标环境与源匹配的所有需要​​激活的功能,但确实需要 已安装 第一。

HTH,

克里斯。

匿名 said...

你好

即使以本地管理员身份登录到框,我仍然遇到未处理的执行错误(访问被拒绝)。

我正在使用v1.1

有什么建议吗?

史蒂夫

克里斯·奥'Brien说过...

嗨史蒂夫,

Do you mean the 1.1 version I uploaded to Codeplex today (22 Sept)? In any case, would you mind replying with your e-mail 加ress (I won't publish to the blog) so I can work through this problem with you?

非常感谢,

克里斯。

匿名 said...

从开发人员将网站集导入到生产中的空白网站集时出现错误:

[10/17/2008 9:11:03 AM]:FatalError:无法加载文件或程序集“ ReservationEventHandler,版本= 12.0.0.0,Culture = neutral,PublicKeyToken = 71e9bce111e9429c”或其依赖项之一。该系统找不到指定的文件。
在Microsoft.SharePoint.SPEventReceiverDefinition.ValidAssembly()
在Microsoft.SharePoint.SPEventReceiverDefinition.ValidReceiverFields()
在Microsoft.SharePoint.SPEventReceiverDefinition.UpdateInternal(Boolean isMigration)
在Microsoft.SharePoint.Deployment.EventReceiverSerializer.UpdateEventReceiver(SPEventReceiverDefinition eventReceiver,XmlElement eventReceiverData,SPImportSettings设置)
在Microsoft.SharePoint.Deployment.EventReceiverSerializer.SetObjectData(对象obj,序列化信息,StreamingContext上下文,ISurrogateSelector选择器)
在Microsoft.SharePoint.Deployment.ContentTypeSerializer.UpdateEventReceivers(SPContentType 内容Type,String 内容TypeXml,StreamingContext上下文,ISurrogateSelector选择器)
在Microsoft.SharePoint.Deployment.ContentTypeSerializer.SetObjectData(对象obj,SerializationInfo信息,StreamingContext上下文,ISurrogateSelector选择器)
在Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType,Boolean isChildObject)
在Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType,Boolean isChildObject,DeploymentObject信封)
在Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream)
在Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serializationStream)
在Microsoft.SharePoint.Deployment.ImportObjectManager.ProcessObject(XmlReader xmlReader)
在Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects()
在Microsoft.SharePoint.Deployment.SPImport.Run()


请帮忙,

PJ

未知说过...

克里斯,您好,很棒的工具,这周使我摆脱了严重的毛病。不过有一个问题;如果导出网站集的子网站,可以将其作为根网站集导入到另一个框中吗?我的所有尝试都将其还原为目标网站集中的子网站,而不是还原为根网站。

谢谢,

特洛伊。

克里斯·奥'Brien说过...

@PJ,

通常,此错误表示它的确切含义-在目标环境中找不到源环境中存在的程序集。在您的情况下,我看到它似乎是在指SharePoint系统程序集之一-是否从GAC中意外删除了任何内容?

从另一个角度来看,我确实记得在一个奇怪的情况下出现了该错误真正抱怨的程序集,并且在不进行任何更改的情况下,重新启动后错误消失了(导入成功)。

HTH,

克里斯。

克里斯·奥'Brien说过...

@troyhunt,

有趣的一件事-我实际上不确定是否可以重新创建导出的网站,以替代网站集的现有根网站。我有一种感觉,尽管有这种可能!

你可以尝试问 斯蒂芬·高斯纳 以便将适当的参数传递给Content Deployment API。从那里您可能可以算出向导中的操作,或者您可能需要稍微调整向导代码以支持这种情况。

抱歉,这不是您要找的简单答案。

克里斯。

卡林说过...

克里斯,你好

我刚接触SharePoint,但是最近启动了一个发布网站,其中包含从外部来源导入的内容(约4000页)。现在,我的任务是自动执行一个导入程序,以对上述内容进行季度更新,而不会覆盖首次导入后所做的编辑,并在每4,000页上的页面级保存内容Web部件。

此向导是实现此目标的最佳方法(甚至是一种方法)吗?

谢谢!

克里斯·奥'Brien说过...

卡林

是的,我认为您应该可以使用向导代码(可从 www.codeplex.com/SPDeploymentWizard as a starting point for your tool. (N.B. 我不't 认为 you can use the Wizard as is since it 确实n't yet support automation/scripting).

如果我正确地解释了您的要求,请以与向导一样的方式使用Content Deployment API选中所有框。

HTH,

克里斯。

匿名 said...

你好
我正在使用WSS 3.0SP1,正在尝试从子站点导出列表(http:// server / SiteA / SubSiteA / List),并将其导入到同一Sharepoint父站点(http:// server)中的其他站点中/ SiteB / List)。导出似乎可以正常工作,但是在导入时出现.NET错误。我使用http:// server作为网站URL,使用http:// server / SiteA作为Import 网页 URL。我得到的错误是System.ArgumentException:值不在期望的范围内...任何可以帮助我解决此问题的想法...在使它起作用后,我将保存我的表扬评论:)谢谢!

克里斯·奥'Brien说过...

嗨猫王,

聪明人 ;-)

可能是要导入的网络中不存在/未激活功能吗?我已经看到功能不同步时出现此错误(因为Content Deployment期望它们同步)。

否则,假设您是最新的SP1和其他更新(已修复了Content Deployment的某些问题),那么不幸的是,我只能建议您:

-检查SharePoint日志/向导日志以获取有关失败原因的更多线索
-使用“内容部署”搜索也遇到此错误的其他人

干杯,

克里斯。

附言那不是错别字-您要指定http:// server / SiteB作为导入Web URL对吗?
P.P.S.而你 在“保留对象ID和位置”上打勾(因为在重新绑定对象时无法保留ID)?

匿名 said...

克里斯,
感谢您的快速回复!我检查了两个站点的站点功能,它们安装的功能和活动的功能都相同。我可以在同一位置创建第二个名称不同的列表进行测试吗?
我想我可能在原始帖子中不清楚。我们在主门户页面下都有对应于业务部门的多个子站点,我会考虑这些站点还是子站点?如果是子站点,则....源是http:// server / site / subsiteA / list,目标是http:// server / site / subsiteB / list

谢谢!

克里斯·奥'Brien说过...

猫王

在这种情况下,如果您尚未使用“ http:// server / site / subsiteB /”作为导入网址,则应该使用。此值始终与您要将对象导入到的网站相对应-因此,无论是要导入的网站还是列表,请始终指定直接父网站的路径。

HTH,

克里斯。

匿名 said...

克里斯,
该产品就像一个魅力!我现在很高兴唱您的赞美。如果您曾经在康涅狄格州的哈特福德(Hartford,Connecticut)地区,请让我知道...在我身上喝酒!

再次感谢你的帮助!
猫王

克里斯·奥'Brien说过...

猫王

太好了,很高兴您被整理了:-)

克里斯。

匿名 said...

嗯,当我尝试从另一个子站点导入列表时,一旦它开始导入Threaded.aspx,就会得到以下内容。我得到Microsoft.Sharepoint.SPException:应用程序中的错误。在.... SPList.UpdateDirectoryManagementService(STring oldalias,String newalias)...有什么想法吗?

谢谢

匿名 said...

嗯,我 认为 it might have something to do with the fact that the Discussion lists 所有 have the 相同 web 加ress (General discussion in the link).. anyone know how to customize this?

匿名 said...

我正在使用此工具导出和导入讨论区,它可以很好地完成工作,但是当我检查站点时。它只是从导出的站点中什么都没有!没有错误!

我是服务器上的本地管理员,也是服务器场管理员,因此权限没有问题。.我是否缺少任何步骤?

我正在导出和导入全部,并且不排除任何内容,没有保留身份标记被打勾等。

我在这里有点迷路,将不胜感激。


谢谢
米拉

匿名 said...

克里斯。我用平方尺弄明白了。使用Sharepoint Designer 2007更改了实际的列表名称,那么您的工具在导出/导入列表时就没有问题了。

克里斯·奥'Brien说过...

@Meera,

嗯,听起来有点可疑。我想知道您是否期望导入的内容可以在某个位置找到,但是导入实际上将其放置在其他位置?

导入日志文件是否有任何错误/警告?

谢谢,

克里斯。

克里斯·奥'Brien说过...

@猫王

好好侦探!很高兴听到您被分类。

克里斯。

说过...

克里斯:

很棒的工具。工作完美。

感谢您与我们分享。

匿名 said...

嘿克里斯,

我试图使用CDW来重设站点,但是出于某种神秘的原因,它没有按照我的意愿去做。

我在网站集A(http:// server / sites / siteA)中有一个顶级网站,我想移到网站集B(http:// server / sites / siteB / newloc)中的子网站。 。

因此,我从A导出整个站点,然后选择将其导入到B的空白站点。我使用的导入参数是:

网站网址:http:// server / sites / siteB
导入网址:http:// server / sites / siteB / newloc(其中newloc是一个空站点)
保留身份:否

但是,当导入运行时,我最终将siteA的内容复制到根siteB而不是newloc下。

我究竟做错了什么?

谢谢,继续努力!
亚历克斯

匿名 said...

我正在尝试导出列表,但出现错误。我希望您能提供帮助。

错误:
[2009年3月27日10:42:22 AM]:进度:开始处理ContentType类型的对象。
[2009年3月27日10:42:22 AM]:FatalError:字段类型标签未正确安装。进入列表设置页面以删除此字段。
在Microsoft.SharePoint.SPFieldCollection.CreateSPField(Int32索引)
在Microsoft.SharePoint.SPFieldCollection.EnsureSPField(Int32索引)
在Microsoft.SharePoint.SPFieldCollection.get_Item(Int32 iIndex)
在Microsoft.SharePoint.SPFieldCollection.ItemAtIndex(Int32 iIndex)
在Microsoft.SharePoint.SPBaseCollection.SPEnumerator.System.Collections.IEnumerator.get_Current()
在Microsoft.SharePoint.SPContentType.get_Fields()
在Microsoft.SharePoint.Deployment.ContentTypeSerializer.GetDataFromDataSet(Object obj,SerializationInfo info,StreamingContext context)
在Microsoft.SharePoint.Deployment.DeploymentSerializationSurrogate.GetObjectData(对象obj,序列化信息,StreamingContext上下文)
在Microsoft.SharePoint.Deployment.XmlFormatter.SerializeObject(Object obj,ISerializationSurrogate代理,字符串elementName,布尔bNeedEnvelope)
在Microsoft.SharePoint.Deployment.XmlFormatter.Serialize(Stream serializationStream,Object topLevelObject)
在Microsoft.SharePoint.Deployment.ObjectSerializer.Serialize(DeploymentObject deployObject,Stream serializationStream)
在Microsoft.SharePoint.Deployment.SPExport.SerializeObjects()
在Microsoft.SharePoint.Deployment.SPExport.Run()

谢谢,
布兰登

克里斯·奥'Brien说过...

@Alex,

很抱歉延迟您的评论,我已经完全下雪了。

嗯-我 认为 there might be a limitation of the Wizard here that you've ran into - 我不't 认为 you're doing anything wrong with those parameters.

我认为正在发生的事情是,当您选择一个顶级网站时,如果您希望使用“ 网页”标签来使用它,则会使用“ Site”标签(因为您实际上想导出根网站)网站集,而不是网站集本身)。目前,该向导不允许您指定。

I'll 加 this to my task list for enhancements to the Wizard.

不幸的是,我目前唯一的建议是如果您(或与您一起工作的人)具有开发技能,请修改代码。一旦找到正确的位置,更改代码将是一站式工作。如果您走这条路并且需要我的任何帮助,请随时与我们联系。

Otherwise I hope to 加 this in to the current release over the next 2 weeks or so if you can wait that long!

抱歉给你带来不便..

克里斯。

克里斯·奥'Brien说过...

@布兰登,

很抱歉延迟您的评论,我已经完全下雪了。

“标记”是自定义字段类型,而不是标准字段吗?通常,如果自定义字段的定义不太正确(例如,在fldtypes * .xml文件中),则会发生此错误

HTH,

克里斯。

科斯塔斯 said...

克里斯·嗨,

首先,我非常感谢您提供的这个有用的工具。我经常将其用于多种目的(列表,网站,收藏集),其性能令我感到非常满意。
有关网站集部署的快速问题。
我们试图将网站集从一个服务器场部署到另一个服务器场(保留对象ID)。它像魅力一样工作:-)
问题是我们希望在未来的内容部署中使用Moss的内容部署功能。我们应该进行全面部署还是快速部署(增量式)解决问题?
如果前者有办法(一种令牌或类似的东西),以便不能再次完全部署相同的内容(很多是8 Gbs)...

再次感谢您的时间,

克里斯·奥'Brien说过...

@Kostas,

很高兴您发现该工具有用:-)

如果我对问题的理解正确,那么您是在问是否应在标准内容部署中使用增量选项?一般来说,您应该 首先 部署为 充分,则可以进行后续部署 增加的。这将是推荐的方法。

Also 不e that I'm hoping to 加 增加的 部署 to my tool over the next month or so.

HTH,

克里斯。

国阵 said...

克里斯,你好

我们正在考虑在可重用内容中部署项目,以及一些带有页面的文档库,这些页面利用了从我们的开发到客户端的这些可重用内容。'的UAT环境。是否可以使用您的工具来实现此目的而不必在目标位置创建空白站点?因为存在我们不希望覆盖的子站点,列表等。

When I select just required items in the Reusable 内容 list 和 do an import specifying the Import URL as "http://dev.abc.com/ReusableContent", I get a error like "object reference 不 found ...". Grateful if you can offer any advice on this, thanks.

克里斯·奥'Brien说过...

@BN,

是的,可以将“可重复使用的内容”项导入到已经有数据的站点中,并且已经完成了很多次。

The mistake you're making is putting "http://dev.abc.com/ReusableContent" in the 导入网址 box - since the ReusableContent list is a list in the web of a publishing site (not a subweb), you should 不 specify anything for the 导入网址.

HTH,

克里斯。

缺口 said...

克里斯,你好

我的组织开始使用Sharepoint重建公司内部网,而我'我们已经完成了整理部署过程的快乐任务。我喜欢这个向导的外观,只是我想知道您能否为我回答。我们总是必须记录的一件事是在部署失败/用户不满意(好像!)/等等的情况下退出计划。使用CDW的退出方法是什么?如我所见,这两个选项是:
1)在部署之前进行备份,然后从该备份还原
2)使用stsadm -retractsolution(尽管大概这仅适用于.wsp解决方案部署?)

有什么我想念的吗? CDW是否包括撤消部署的选项?

非常感谢,
缺口

克里斯·奥'Brien说过...

@缺口,

不幸的是,SharePoint中的部署不是事务性的,因此您必须对备份做一些工作以确保您拥有良好的回滚位置。两种情况都是这样:

-使用WSP部署资产
-内容部署(例如,使用我的向导或通过在Central Admin中配置OOTB内容部署)

我注意到您似乎使两者有些混淆。向导对wsps(即部署*或*撤消)不执行任何操作-这通常与您可能拥有的任何部署脚本分开完成。这将照顾您拥有的所有文件系统资产(12个配置单元文件,功能,SPWebConfigModifications等)。然后,作为后续步骤,内容部署用于从源到目标部署实际内容(例如Web,列表,列表项,页面等)。

因此,我建议在部署之前使用文件系统AND内容数据库的备份来确定您的回滚位置。确实,向导会在进行导入作为提醒之前提示您警告。如果您要使用备份工具(例如Data Protection Manager 2007)简化此过程,'re able to use them.

HTH,

克里斯。

匿名 said...

克里斯,你好

感谢您提供的出色工具!关于该工具,是否有任何方法可以在站点级别导出而不会覆盖目标目的地上的内容(如果已存在)?

基本上,我想用开发站点的主页更新目标站点的主页,而无需更新其他任何内容。

预先感谢您的任何回复。

克里斯·奥'Brien说过...

@匿名,

当前不是-该工具没有 还支持增量部署 (即,仅部署更改的内容)。但是,我'我希望在接下来的几周内将其构建到工具中:-)

出于兴趣,有什么理由可以'仅选择您的主页并进行部署?还是我不太了解您的情况?

谢谢,

克里斯。

史蒂文 said...

克里斯,
在迁移其内容数据库存储在单独服务器上的Sharepoint服务器时,此工具有用吗?内容数据库将不会移动-它位于同一数据库服务器上。但是,Sharepoint的其余部分需要移动到新服务器。

匿名 said...

克里斯,你好

感谢您及时的回复。

也许我使用工具不正确?

这是我所拥有的结构:

- http://站点
-http:// site / subsite1
-subsite1-DocumentLibrary1
-子站点1-DocumentLibrary2
-http:// site / subsite2

使用您的导出工具时,我选择了"http://site" - "Exclude descendents" & "Exclude dependencies".

导入文件时,我选择了"保留对象ID和位置"与版本选项"Append"。这样做可以根据需要更新http:// site的主页,但是它也更新了我不想做的subsite1-DocumentLibrary1和subsite2-DocumentLibrary2中的内容...

我看不到在哪里选择要更新的首页?

顺便说一句,我期待您将增量部署纳入该工具中!!

谢谢!!

克里斯·奥'Brien说过...

@史蒂文

嗯,我 '我不能完全确定您的意思。您是说要更改SharePoint实施中使用的Web服务器吗?如果是这样,那么不-您'd 只要 need to 加 your new box to the existing farm then remove the old one. This tool would 不 be used in that scenario.

HTH,

克里斯。

克里斯·奥'Brien说过...

@匿名,

嗯,很有趣-我本来希望选择'Exclude dependencies'本来可以做你的'重新寻找。值得注意的是,如果您的站点使用MOSS发布功能,则只需在Pages库中选择主页并进行部署,'我猜你的网站没有't.

可能是你've found a bug. I'我将在本周末开始实施增量部署的过程,因此,当我'm in the code.

谢谢,

克里斯。

匿名 said...

增量部署进展如何?看起来正是我们所需要的。我们即将从质量检查转移到生产服务器。希望将来使用该工具进行任何升级。

克里斯·奥'Brien说过...

好时机 :)

I'在开发/测试的最后阶段,应该在接下来的几天中在Codeplex(以及此处的博客文章)上进行讨论。与往常一样,有兴趣听听是否遇到任何问题,请在此处或在Codeplex和我'我会尽力帮助。

谢谢,

克里斯。

未知说过...

你好
在64位环境中从32位导出到另一台服务器时,这可以工作吗?

克里斯·奥'Brien说过...

@Tanga,

是的,那绝对没问题,在部署过程中没有任何事情会关心x86或x64。

HTH,

克里斯。

肖恩 said...

克里斯,你好

I'm很喜欢增量导出(使用2.5 Beta)。我选择'ExportChanges'从下拉列表中,它立即出现一个消息框,"无法执行增量导出-向导找不到您选择导出的最大对象的已存储更改令牌。这可能是因为尚未使用此版本的向导对网站或网站进行完全导出 ".

我做了什么 'Export'在站点上,将.cmp传递给我们的生产人员以在实时服务器上实施,然后对该站点进行了更改。我已经检查了更改日志,似乎有'add' items corresponding to the number of items I 加ed to the site, 和 the guid in the log matches the guid of the site.

有什么想法我可能做错了吗?日志记录设置中是否有某种方式在某种程度上影响要拾取的内容?

这并不是要损害一个好的工具;这对我们来说不是主要问题,因为全部出口都可以。但是,随着站点的增长,最好仅进行更改即可进行更新。

非常感谢。

克里斯·奥'Brien说过...

@Sean,

如果我的理解正确,您是说已经执行了完全导出(使用2.5 beta或更高版本的向导-这很重要),然后在尝试执行增量操作时看到您引用的消息吗?

如果再次执行完全导出,进行一些更改,然后再次尝试增量,会发生什么情况?

谢谢,

克里斯。

档案馆长说过...

I am trying to move a document library from one subsite to a different site. Is this 可能? When importing what do I put in the urls? I am confused what goes where. Do I put the 加ress I want it to go?

肖恩 said...

克里斯,谢谢您如此迅速的答复。是的,我正在使用向导的2.5 Beta。现在,我尝试进行另一次完全导出并进行更改,'我再次变得一样。没有帮助,我!!!

谢谢你的帮助....

肖恩

克里斯·奥'Brien说过...

@Sean,

抱歉,延迟已从大型SharePoint会议中撤回。我可以'似乎没有再现,但是我'我会继续尝试-同时,您能否详细说明一下您所拥有的环境/所处的环境'重新做出口/进口等?

谢谢,

克里斯。

克里斯·奥'Brien说过...

@Archeious图书馆员,

导入时,要使用的值应为:

-网站网址:网站集的网址,例如http:// intranet /
-导入网址:网站集中网站的网址,例如http:// intranet / hr /

希望有道理。

克里斯。

戴维·佩里说过...

克里斯-关于增量出口,我遇到了与肖恩相同的问题。更多细节:我'm使用向导的2.7版从具有多个DWS子站点的MOSS 2007 SP2文档工作区导出。子站点基于已保存的模板,权限继承被破坏,并且某些库中的事件接收器属于已保存的模板。除此之外,这些网站没有什么特别之处。我在此站点上进行了完整的部署取得了成功。我也尝试过进行更改,然后在尝试完整版后尝试删除字体,但同样的问题也会发生。希望有帮助吗?谢谢戴夫

克里斯·奥'Brien说过...

@ 肖恩,@ 戴维·佩里,

现在,这是一个已确认的错误-造成不便,敬请见谅。不确定我什么时候'能够解决该问题,但肯定会在接下来的几周内发生。 Codeplex网站将提供详细信息。

目前,我只能建议完全出口。

感谢您的报告。

克里斯。

匿名 said...

克里斯非常感谢您,您的工具很棒,我可以将列表从一个站点复制到另一个站点,即使WAP使用或不使用主机头,它也可以在任何Web应用程序下使用,但是我有一个Web应用程序使用带有主机头和扩展名的AAM对于外部和自定义,复制列表过程成功完成,导入和导出日志成功完成,没有错误,但是当我打开目标站点时,目标站点上不存在列表。如果我试图在另一个不使用主机头且未扩展的站点下复制同一列表,则复制成功。

任何人都有相同或相似的问题,或列出可能出了什么问题?有人知道复制的列表在目的地在哪里吗?

克里斯·奥'Brien说过...

@匿名,

我不'认为AAM应该对内容部署没有任何影响,所以我'我不确定该说些什么。您是否检查过网站结构中的所有地方,以防您使用某些选项'确定你去哪个目的地'd end up with?

HTH,

克里斯。

未知说过...

克里斯,你好

我想使用SPExportSettings.FileMaxSize属性将导出的程序包的最大大小设置为1 GB。我已经尝试过了,但是没有用。即使设置了此属性,程序包仍会分为两部分。

我不确定缺少什么。非常感谢您的帮助。
谢谢,
维杰

克里斯·奥'Brien说过...

@Vijay,

我做了一些研究,发现您的(已回答)帖子位于 http://social.msdn.microsoft.com/Forums/en/sharepointdevelopment/thread/0f10490e-1ccb-41ac-8922-b2848808ae44。所以看来你可以使用"1023" but 不 "1024"-好信息,谢谢。

克里斯。

维斯瓦吉特·沃尔克 said...

克里斯,你好

感谢这个很棒的工具!一世'导入导入自定义SQL Server Report Viewer 网页部件的问题。导入后,此Web部件无法查看报告,因为该报告的“报告服务器路径”中包含“服务器名称”。一世'通过Manifest.xml,但是没有找到我想用Import Server替换Server名称的属性's.

我另一件事've tried is 出口ing a web part to .dwp file 和 then importing it. It also failed with 相同 error. So, I just renamed the .dwp file to .xml 和 changed the ReportServerPath Attribute to point to 出口 Report Server. And it worked !!

有没有可能的解决方法?

维斯瓦吉特

加里说过...

克里斯,你好

很棒的工具,谢谢。

我做了导出并禁用了压缩。命令行上是否有要导入的文档?

加里

克里斯·奥'Brien说过...

@加里

是的,我已经在某处适当地记录了下来,但是现在我以完全专业的方式可以'找不到地方。让我尝试在这里解释:

- 跟随 步骤6和7 的过程 对内容部署向导的命令行支持
-编辑生成的XML文件,以确保'FileLocation'属性指向存储所有文件的文件夹路径,没有'BaseFileName'属性,并将FileCompression设置为'False'

如果遇到问题,请随时在这里再次答复。

谢谢,

克里斯。

匿名 said...

克里斯你好,

这是我以前关于"导出/导入自定义SSRS报告查看器Web部件". We've针对此问题提出了部分解决方案,有关详细信息,请参见MSDN论坛:

http://social.msdn.microsoft.com/Forums/en/sharepointbi/thread/402f4df1-3caa-4ae1-b9ad-25b69a410192?prof=required

非常感谢您的协助"fully-working".

谢谢,
维斯瓦吉特

克里斯·奥'Brien说过...

@vishwajitwalke,

我在MSDN论坛上阅读了您的文章。不幸的是,这似乎只是SSRS Report Viewer 网页部件的局限性-如果它可以对绝对URL进行硬编码,我可以'除了您已经做过的事情,别想其他任何行动方法。要么,要么在目标上完成导入之后,*在Web部件页面上进行编辑。

对不起,我可以't be more help.

克里斯。

劳雷亚诺·雷梅迪(Laureano Remedi)说过...

克里斯您好,首先感谢您分享此工具。
在尝试从报告服务迁移报告时,我遇到了一个小问题,该报告位于文档库中,并且在导入过程启动时,该工具针对每个特定报告说's located there.

感谢帮助!!
劳雷亚诺。

克里斯·奥'Brien说过...

@Laureano,

您能告诉我确切的错误消息是什么吗?

谢谢,

克里斯。

匿名 said...

克里斯,你好

这是我先前关于"Problem in Import / 出口 the SSRS 网页 Part". We've为此问题提出了具体解决方案。请在此线程处参考分辨率:
http://social.microsoft.com/Forums/en-US/partnerdevsql/thread/6d7ac7d0-71e0-43a0-97c5-faaf3a678765

谢谢。维斯瓦吉特

匿名 said...

克里斯,你好

感谢您创建如此出色的工具。一世'我已经用它测试了很多东西,而且我一般都理解它。但是我确实有一个问题。我正在处理将整个网站集从位置A移到位置B的问题。我知道,如果A的URL为http:// source / myApp / site且B的URL为http:// destination / myApp /网站,那么我应该离开'Import 网页 URL'字段为空白,然后检查'retain object IDs'框。但是,如果A的URL为http:// source / myApp / site,而B的URL为http:// destination / otherApp / otherSite,该怎么办?那我必须指定一个'Import 网页 URL'?我应该检查'retain object IDs'框?我问的原因是因为你说"if it is reparented" to specify the 'Import 网页 URL'领域。但是在那种情况下,它是否被重做?又为什么呢我的想法是,在我提到的第二种情况下,它已被重新使用,这仅仅是因为"top level site"(在创建新的网站集时,SP称之为)(在目标上)与在源上不同。谢谢。

-凯尔

克里斯·奥'Brien说过...

@凯尔

好问题。实际上,内容*是'在您提到的示例中将其父级化-这种父级化实际上指的是网站集“之下”的所有内容,而不是网站集本身。因此,重造示例包括将网站移至结构中的其他位置/将列表移至其他网站等。

这基本上是因为网站集是SharePoint中许多事物(包括对象之间的引用)的边界。

HTH,

克里斯。

匿名 said...

克里斯,嗨,凯尔又来了。非常感谢您之前的答复,这有助于澄清。作为后续问题,如果我已经完成了上一篇文章中描述的动作(即现在/ webApp / site和/ otherApp / otherSite上具有相同的网站集),该怎么办?现在,我想移动一个名为"HelpSite"。在/ webApp / site上,它位于/ webApp / site / HelpSite和我'm将其移至/ otherApp / otherSite / HelpSite。一世'm假设,根据您先前的解释,由于没有重新生成父项,因此我不需要指定导入Web URL?换句话说,与URL本身无关紧要,只是相对于整个网站集您要移动的项目的位置。因此,如果整个网站集在源上位于/ 1/2,在目标上位于/ 1/2/3/4,您仍然可以安全地将一个网站从/ 1/2 / SiteBeingMoved移至/ 1/2/3 / 4 / SiteBeingMoved,因为其相对于网站集的位置未更改。抱歉,这些例子令人困惑。再说一次,您的产品很棒,很有帮助,非常感谢您抽出宝贵时间回答我的评论。

-凯尔

克里斯·奥'Brien说过...

@凯尔

乐于帮助!

我不得不考虑一下,但是是的'没错-由于网站集中的路径未更改,因此此* isn't *上级操作。因此,您不应该't specify an 导入网址.

考虑其中的某些情况确实有些棘手,但简化它的一点是记住SharePoint's Content Deployment framework is based on the idea of creating an exact mirror between source/destination. When you pick up some 内容, it has a reference to the path within the 网站集 - any time you change that, you are reparenting 和 need to tell it where the new path is via the 导入网址.

HTH,

克里斯。

匿名 said...

克里斯你好

爱你的工具。我能够轻松地将列表从一个站点复制到另一个站点。我不断出错的一件事是,当我尝试从列表中导出一项时。错误消息说该列表项不存在。对我可能做错的事情有任何想法吗?

谢谢
珍妮佛

克里斯·奥'Brien说过...

@詹妮弗,

听起来像你're specifying '保留对象ID和位置'-这将导致导入按ID查找列表,也许列表没有'与您从中导出项目的ID相同。

如果在未选中此复选框的情况下重试,会发生什么情况?

谢谢,

克里斯。

匿名 said...

克里斯你好

谢谢回复。尝试导出一个列表项时遇到的错误是我遇到的问题。我认为这与该特定列表有关,因为该网站存在很多问题。我能够导出整个列表,然后导入到另一个站点。然后,我尝试从该新站点导出一件商品,并且没有'没有任何问题。这样,我就定了。

谢谢
珍妮佛

达伦说过...

非常感谢您使用此工具Chris,它挽救了我的生命。在花费大量时间尝试使用Microsoft的方式来匹配测试和实际环境并找到最无用的错误之后,您的工具便得以解决并做到了。谢谢您,这是一个了不起的软件。

佩里 said...

在moss 2007,sp2中安装文档库或自定义列表的导入时遇到问题。

试图将文档库从一个网站集导出到另一个网站集。

导入日志,说

FatalError:指定的强制转换无效。
在Microsoft.SharePoint.Deployment.ListSerializer.SetObjectData(对象obj,SerializationInfo信息,StreamingContext上下文,ISurrogateSelector选择器)
在Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType,Boolean isChildObject)
在Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType,Boolean isChildObject,DeploymentObject信封)
在Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream)
在Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serializationStream)
在Microsoft.SharePoint.Deployment.ImportObjectManager.ProcessObject(XmlReader xmlReader)
在Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects()
在Microsoft.SharePoint.Deployment.SPImport.Run()

在SharePoint Foundation 2010中工作正常。

可能是什么问题呢。