显示带有标签的帖子 内容迁移API. 显示所有帖子
显示带有标签的帖子 内容迁移API. 显示所有帖子

2008年4月6日,星期日

成功使用内容部署向导的食谱

所以我的工具 的SharePoint内容部署向导 现已开放一段时间,我一直在监视反馈和人们密切关注的问题。当前版本被标记为“ beta 2”,但我对当前代码库的稳定性感到满意,因此可能会很快将其重新标记为“ release 1.0”(遵循有关beta标签心理方面的一些反馈意见:-) )。

只有少数人提出了问题,并且所有问题几乎都与该工具使用的基础Microsoft代码有关,而不是向导本身。我对此可能应该感到高兴,但实际上,如果有人从该工具中获得错误,那实际上并不重要 为什么 it happens. The good 新s 是 that it seems Microsoft 是 finally getting some 是 sues with the Content Deployment API sorted 在 their 结束. This 是 a key point in my list of guidance I'd give to anybody running into any errors from the Wizard. Note that the first two apply to use of standard Content Deployment using Central Admin also:

提示1-Service Pack 1和修补程序很重要

Service Pack 1 fixed many 是 sues with Content Deployment. Unfortunately it also broke some things which had previously been fixed with pre-SP1 hotfixes. It took me a while to realize this, but it's definitely the case. Probably the most common 是 sue in this 是a 是 the '违反主键' error. There 是 reports of being able to work around this by modifying versioning settings on certain libraries, but MS have now released a hotfix very recently which seems to solve the problem for good on SP1 environments. At the moment this 是 by special request 只要 - the KB to ask for 是 KB950279. This 论坛主题 讨论这个问题,对我们有用。有趣的是,我在SPC2008上与Tyler Butler(内容部署程序经理)进行了交谈,他表示SharePoint中的“内容部署”可能会“在未来30至60天内变得更加稳定”。我猜这个修补程序就是他指的,或者至少是其中的一部分。

Tip 2 - 一种lways start from 一个空白的网站模板 从STSADM创建的空站点-o目标上的createsite

目前,官方指南指出,内容部署要求已经从“空白”网站模板创建了目标网站-有关详细信息,请参见 KB文章923592。但是,Stefan在下面的评论中详细介绍的一种更好的方法是创建一个 空的 使用STSADM -o createsite命令创建站点。这与从空白模板创建的网站不同,这是创建将使用Content Deployment或向导的网站的最安全方法。这意味着,即使您要基于开发中的发布站点模板创建站点,也应以这种方式创建希望将内容部署到的任何其他环境。值得注意的是,对于发布站点,也不应为首次部署启用发布功能-当第一次部署发生时,将为您解决。否则,您将收到相同的“对象已存在”错误。

提示3-注意“保留对象ID”选项

通常,这里的正确选项是选择您确实要保留对象ID,并且应该从第一次部署开始就完成-唯一的例外是将网站/列表移动到站点结构的不同部分(重新创建)。不过,请务必注意,如Stefan在他的建议的“推荐”中所述,将Content Deployment或向导与STSADM导出/导入混合使用可能会引起问题。Content Deployment 和 Migration API - 一种voiding common problems的帖子。

“向导”中提供的选项的更全面说明可在“使用SharePoint内容部署向导'。还请注意,就工具而言,它不是- 除了项目级重定级和增量部署之类的额外功能外,我还希望重构代码,以便可以从命令行编写向导向导。

特别感谢我的同事Nigel Price处理此修补程序的情况,非常感谢:-)

2007年12月17日,星期一

使用SharePoint内容部署向导

因此,如果您已阅读有关该工具的早期文章(介绍SharePoint内容部署向导何时使用SharePoint内容部署向导) 和 figure this 是 a useful tool, let's go onto the next level of detail. Generally speaking the Content Deployment Wizard 'just works', but if you want to know more about the different options, read on. This post contains reference information 和 a guide to some 部署 scenarios 在 the 结束.

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

  • 依存关系 of selected 内容 (e.g. referenced CSS files, master pages) can be evaluated - in the tool they 是 自动ally included in the export - check 'Exclude 依存关系 of selected objects' to disable this
  • 所有 需要 内容类型, columns etc. 是 自动ally included in the export
  • in contrast to STSADM export, it 是 可能 to retain GUIDs during 部署 (where objects 是 不 being reparented) - check 'Retain object IDs 和 locations' to enable this
  • no filesystem files (assemblies, 的SharePoint Solutions/Features etc.) 是 deployed - these must already be present on the target for the import to succeed)
  • the following 内容 确实 不 get captured by the Content Migration API - 一种lerts, audit trail, change log history, recycle-bin items, workflow tasks/state

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

可以部署什么?

内容部署向导允许选择任何要导出的内容-网站集,网站,列表/文档库,文件夹,一直到单个列表项和文件。可以通过右键单击树视图中的对象来将其添加到导出中,对于网络,该对象将显示如下所示的菜单:



These 是 explained:-

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

请注意,在导入时,向导将引入 所有 the 内容s of the selected .cmp file(s) - there 是 no option to partially import a package. Hence if different import options 是 需要 for different 内容, the exports should be broken into separate chunks.

导出选项

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

  • 'Exclude 依存关系 of selected objects' - by default the Content Migration API will 自动ally include dependent objects of whatever you select. This can include CSS files, master pages, images 和 the like, but also list items which 是 displayed on a page included in the export. This can be turned off with this checkbox so 只要 the objects you select 是 exported.
  • 'Export method' (options 是 'ExportAll', 'ExportChanges') - for now ExportAll 是 the option to select, ability to export changes 只要 will come in a future release
  • 'Include versions' (options 是 'LastMajor', 'CurrentVersion', 'LastMajorAndMinor', 'All') - should be self-explanatory
  • “包含安全性”(选项为“无”,“ WssOnly”,“全部”)-请注意,由于安全性是在Web级别定义的,因此实际上选择了较小对象(例如列表)的包含安全性选项之一导出整个网络的安全性。 “ WssOnly”和“全部”都导出SharePoint项目级对象权限,因此,例如,如果您使用SharePoint组来管理安全性,那么实际的权限和组都将被继承,并且您可以添加一组不同的用户/ AD组在目标上。看到 迁移安全信息 在MSDN上获得更多详细信息。

导入选项

On the import we also have 一些 options, some of which correspond to options selected on the export:

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

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

    I 高度 recommend reading the 内容 listed in the 'Useful links' section 在 the 结束 of the article to properly understand this setting.
  • “包括安全性”-允许在包中导入安全性信息,假设在导出时选择了包括安全性的选项之一
  • 'Version updates' - 一种llows control over whether 新 versions should be added to existing files, or whether the existing version should be replaced etc.
  • 'User info update' - 一种llows control over whether 'last modified' information should be imported. Often this 只要 makes sense if the same set of users exist in the 来源和 destination

场景快速参考

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

部署项目

典型设定

Entire site 收藏ion
  • Site 收藏ion should first be created on the destination.
  • 导出时,选择“包括所有后代”。
  • 首次导入时,请确保选中“保留对象ID和位置”。
  • 如果您希望部署对象权限和用户,请选择“包括安全性”选项之一
网页
  • 导出时,选择“包括所有后代”。
  • 首次导入时,请确保选中“保留对象ID和位置” 如果网络与源具有相同的父项。
  • 如果网站的父网站不同,请不要选中“保留对象ID和位置”,并确保指定了“导入网站URL”
文件库/清单
  • 导出时,选择“包括所有后代”。
  • 首次导入时,请确保选中“保留对象ID和位置” if列表的父级与源上的父级相同(即不重定级)。
  • 在后续导入中,如果未导入到根网站,请确保指定了“导入网站URL”,并且不要选中“保留对象ID和位置”
文件/列表项
  • 确保目标目录中存在父库/列表
  • 如果目标上已经存在该项目,请勿检查“保留对象ID和位置”

 

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

有用的链接

2007年12月14日,星期五

何时使用SharePoint内容部署向导

跟随我 工具介绍 last time, today I want to try to help position the tool for people who 是n't sure if it could be useful to them or for what scenarios - if you 只要 take one thing away from my postings on the Content Deployment Wizard it should be this.

我在现有部署方法(例如管理中心中的STSADM导出/内容部署)上看到内容部署向导的“增值”是:

  • 使用树形视图“挑选”内容以进行部署的能力-从整个网站集一直到单个列表项或文件。 (这是个大问题,因为标准SharePoint工具没有提供执行此操作的方法)
  • ability to control whether object GUIDs 是 retained - this 是 需要 for scenarios where the destination should be a mirror-image of the source, such as staging/production environments for the same site
  • 移动某些物体的能力(仅限于 网和列表 在初始版本中)到导入目标上的新位置,称为“重定位”

I would suggest the tool could well have a place in your 的SharePoint toolbox, but it's likely to be something you use every now 和 then, rather than 所有 the time. The two main scenarios where I use the tool 是:

  • 在 the 结束 of the development phase when I need to move a site from development to staging/production. Here, the tool 所有ows me to be sure that 所有 relationships/linkages between objects will be preserved (so no problems with ListViewWebParts/DataViewWebParts/InfoPath forms for example)
  • any odd occasions where I have a need to move a particular document library/list, or a particular set of files (e.g. master page, page layouts, CSS etc.). This assumes by the way, that the files were 不 deployed with a feature - I wouldn't recommend mixing 部署 methods like that.

N.B.在开发/测试/登台/生产情况下,还可以使用该工具通过不同环境对特定文件/列表项进行持续更新。这样的一个例子是在WCM站点上仅部署母版页,页面布局和CSS文件(这意味着客户端(例如,在'Pages'库中)创作的所有其他内容不会在目标上被覆盖),但是我还没有'还没有机会在实际项目中进行尝试。

Some 是as where the tool 不能 be used (i.e. the tool 确实 不 yet support this usage) 是:

  • 从网站仅导出特定时间戳(更改令牌)以来的更改
  • 将单个列表项/文件导入到目标上的新位置(重排)

最后一点,“新位置”将是文档库或列表,因为这些项目必须位于这样的容器中-它们不能存在于网站的根目录。当前,该工具支持重新创建Web和列表的父级,但不支持单个列表项/文件。什么 currently 可能 with individual list items/files, 是 moving selected items from a source to a target 结构相同 (e.g. move Doc2 和 Doc5 from "Team documents" on the source to "Team Documents" on the target). Usefully, whenever a file 是 exported/imported using the tool, the associated list item 是 also deployed, meaning metadata updates to column values 是 deployable.

希望这可以帮助您了解该向导的适用位置。如果您认为该向导可能对您不时有用,请继续关注我的下一篇文章,其中将提供更详细的“用法”信息。 

2007年11月11日,星期日

更改SharePoint网站's URL

您可能会发现自己有时需要执行的操作是更改现有SharePoint 2007的URL 现场。这是一个非常有趣的场景,可以说SharePoint和IIS之间的关系比标准.Net网站更加复杂。但是,有 several possible 解决方案。我们许多人可能想到的第一件事可能是:

  • 将Web应用程序扩展到另一个URL
  • 以某种方式使用备用访问映射

Depending on your site both could be valid methods, but as with anything 的SharePoint-related, there 是 different things to watch out for with the different 方法. As an example, extending the web application 原为n't the right approach for our scenario for the following reasons:

  • 该网站实际上不应该存在于旧的URL,而是重定向 原为 需要
  • InfoPath表单似乎无法很好地处理 “扩展的Web应用程序”配置。 (问题细节 -在一个URL上一切正常,但是 如果两个Web应用程序使用 单独的网站集, 另一方面,打开表单时您可能会看到安全错误。这是因为表单模板在另一个网站集中被引用-文档库只能有一个指向文档模板的URL,而将表单发布到内容类型会将绝对链接存储在内容数据库中。)

另外,使用备用访问映射进行的一些快速测试似乎并未为我提供预期的结果,因此我决定采用另一种方法,因为我知道它可以工作并且没有太多时间进行试验。这就是我的过程:

更改网站的URL 通过重新创建站点(需要停机)

  1. 停止旧的IIS站点。
  2. 在SharePoint中创建新的Web应用程序,绑定到 new IP address in IIS.
  3. 如果适用,请应用SSL证书。
  4. Create 新 site 收藏ion for this web application using the 空白网站模板.
  5. 使用SharePoint的内容迁移API(我有一个执行此操作的工具,不久后将在Codeplex上)导出内容,以确保导出所有安全数据。 备择方案 此步骤包括STSADM -O BACKUP和STSADM-O EXPORT。 *
  6. Import 内容 into the 新 site 收藏ion, ensuring to include security.
  7. 修改InfoPath使用的.udcx数据连接文件中的所有绝对URL。
  8. Republish any InfoPath forms to the 新 site.
  9. 配置搜索:
    1. Ensure 新 URL 是 a 内容 source.
    2. 更新所有使用绝对URL的爬网规则。
    3. 适当更新“权威页面”。
    4. 开始完全爬网。
    5. 更新范围。
    6. 转到网站设置>网站集管理>搜索范围,将任何自定义范围添加到搜索下拉列表(如果使用标准搜索Web部件)。
    7. 确保搜索Web部件使用相对URL /不引用旧站点URL。
  10. 如果需要从旧URL进行重定向,请创建新的IIS网站以实现此目的:
    1. Create 新 site in IIS 并绑定到旧的IP地址。
    2. 在“主目录”选项卡上,指定内容应来自“重定向到URL”并输入URL。
  11. Ensure DNS/firewalls 是 configured appropriately for 新 URL, remembering to 所有ow appropriate time for DNS propagation.
  12. 执行测试。

* N.B. Between 内容迁移API和STSADM 出口,我更喜欢前者 since this 所有ows control over whether object GUIDs 是 retained (more information in STSADM导出,内容部署,内容迁移API,功能/解决方案-比较部署选项 )。下一节将讨论STSADM备份/还原。

这种方法的注意事项

  • When using the 内容迁移API or STSADM backup/restore, the following items 是 不 included - 一种lerts, workflows, recycle bin state or site 收藏ion properties. These must be migrated/recreated separately.
  • 绝对需要进行回归测试 由于该网站已被有效地重建

作为改进第一个考虑因素的一种方法,另一种选择是 STSADM备份/还原(尽管我没有尝试过这种方法)。值得注意的是这种方法 确实 collect data for the items which the other 方法 exclude, however due to the nature of our site, 这些都不是重大问题。

因此,这种方法是成功的,并且希望该信息可以使人们看到一些优缺点,而不必花费时间亲自进行学习。但是,我也注意到 Faraz Khan建议的基于备用访问映射的方法。由于仅在 本文前几天 对于我的情况来说,为时已晚,尽管我鼓励您看看。请注意,法拉兹还指出 注意事项,例如某些链接在没有修复的情况下不会更新为新的URL,尽管这似乎并不是主要问题。它确实回应了我关于存在的观点 使用不同的方法需要注意的事情不同,但是这两种方法都提供了有效的方法来更改 SharePoint网站的URL。

2007年10月29日,星期一

STSADM导出,内容部署,内容迁移API,功能/解决方案-比较部署选项

早在5月,我写了一篇标题为 的SharePoint部署选项:功能还是内容部署?,其中讨论了有关在SharePoint网站开发过程中将资产从开发转移到生产(或介于两者之间的环境)的“正确”方法的一些想法。现在,我从事其他项目并在每个项目上有意识地使用了不同的部署方法,我很快得出结论,部署的“正确”方法会因情况而异。因此,我认为可能有用的是对整个部署选项范围进行分析,并提供有助于您更轻松地决定如何完成此过程的关键步骤的信息。

因此,让我们看一下这些选项及其特征。顺便说一句,所有选项都不使用“破坏性同步”,其中 所有 导入之前先删除内容。

使用STSADM导出/导入

描述:

使用STSADM命令生成文件(导出),然后可以将其传输到目标以进行导入。将内容从一个地方移动到另一个地方的最简单方法之一,尽管不太可能适合作为连续部署机制。例子:

stsadm.exe -o导出-url http:// localhost-文件名C:\ Export.cab -includeusersecurity-版本4-覆盖

stsadm.exe -o导入-url http:// localhost / sites / newsite -文件名C:\ Export.cab -includeusersecurity

适用于:

  • 将整个站点/网站作为一个整体移动
  • 快速部署测试
  • Reparenting webs (can be into a different site 收藏ion)

注意事项:

  • 目标上的内容将被覆盖(如果已存在)
  • 粒度仅限于网络
  • Object GUIDs 是 不 preserved (so some things will need to be 'fixed up' e.g. anything that references a list by GUID - ListViewWebPart, using lists with InfoPath forms)
  • Not a backup/restore tool - 一种lthough it's the option which 是 most like backup/restore, things like alerts, audit trail, recycle bin items, security state, workflow tasks/state 是 不 exported
  • 不交易

通过管理中心使用内容部署 *

描述:

通过Central Admin('/_admin/deployment.aspx')中的“内容部署路径和作业”进行配置。路径定义了源/目标和身份验证详细信息,特定的作业确切地定义了应部署的内容以及频率。快速部署功能允许具有权限的用户指定重要内容,这些内容应比管理员配置的现有作业计划更定期地部署(每15分钟部署一次快速部署项目)。

适用于:

  • Moving entire site 收藏ions/webs on a scheduled basis e.g. in an authoring/production or authoring/staging/production topology
  • 仅部署增量更改,通过电子邮件通知成功/失败
  • 允许网站所有者通过“快速部署”对内容部署进行一些控制
  • 自动部署选择要部署的内容的依存关系,即使在不同的站点中(例如页面布局/内容类型/站点列/引用的图像等)
  • Automatically transferring 部署 package to the target environment (via HTTP[S])
  • 不交易

注意事项:

  • 目标上的内容将被覆盖(如果已存在)
  • 粒度仅限于网络
  • 网站内容(例如页面/图像)和网站“基础结构”(例如母版页,页面布局)之间没有区别
  • Object GUIDs 是 preserved
  • 空白网站模板应用于 来源和 destination site 收藏ion (see http://support.microsoft.com/kb/923592)
  • 也不是备份/还原工具(请参见上文)

使用内容迁移API *

涉及编写使用内容迁移API(称为PRIME)导出然后导入内容的代码-该API易于使用。

适用于:

  • 完全灵活的部署选项
  • 对部署内容进行细粒度控制(直至项目级别)
  • 保留对象GUID的能力(因此列表GUID不需要修复)
  • 能够选择安全性,版本控制和用户角色的选项

注意事项:

  • 空白网站模板应用于 来源和 destination site 收藏ion (see http://support.microsoft.com/kb/923592)
  • 不交易
  • 也不是备份/还原工具(请参见上文)
  • 需要开发技能才能编写代码

使用功能/解决方案

此博客的重点 一些 articles。涉及定义XML配置文件,SharePoint用来以正确的方式在目标上添加工件。这可能比仅在SharePoint Designer中进行开发要复杂得多,但可以在解决方案的整个生命周期中进行更好的管理。

适用于:

  • 迭代开发/部署
  • 部署程序集和文件系统文件(其他方法都不能解决此问题)
  • 能够使用解决方案包将程序集/文件系统文件部署到服务器场中的所有服务器
  • 持续整合的可能性

注意事项:

  • 开发人员负责评估和部署依赖项(例如基础内容类型)。
  • 通过功能部署的内容类型,列表定义,站点列等的更新必须使用API​​完成-修改原始功能文件,然后不支持重新配置
  • 由于缺乏当前工具的帮助,可能会非常耗时

* 有关使用Content Deployment或Content Migration API的一些其他说明:

- 一种ppropriate Features will 自动ally be 活性 在目标上,但必须存在(即已安装)它们才能进行内容部署(目标首次启用时,不应在目标上启用N.B.发布功能)

-不应将带有RetainObjectIdentity选项的Content Deployment或内容迁移API与STSADM -export / import结合使用,因为后者将分配新的ID!

因此很明显,在选择如何进行项目部署时可以考虑几个方面。在很多情况下,功能/解决方案不是最合适的选择,我倾向于使用内容迁移API,这主要是因为其他任何选项都没有提供灵活性。当然,这的确意味着编写代码,但是正如我上次提到的那样,我将很快分享我编写的微型应用程序,因此您不必这样做!

一些有用的参考:

2007年10月14日,星期日

使用STSADM导出或内容迁移API进行部署

有 focused on 部署使用 Features for 一些 articles, 早在五月,我写了一篇标题为 的SharePoint部署选项:功能还是内容部署?,它探讨了围绕 SharePoint项目的部署策略。可以使用多种方法 将SharePoint工件和内容从一个地方移动到另一个地方,我认为可以说部署方面仍然存在一定的混乱 适用于许多SharePoint开发人员。我当然不会声称获得所有答案,但是上周交付了另一个项目之后,似乎是回顾一些经验和交流的好时机。 reflect 在不同的方法上。

不用说,就总体部署策略而言,最好的主意是 拥有一个!我看到许多来自 人们接近 在开发阶段结束时,询问他们应该如何将工作转移到 实时服务器。我发现离开部署直到 end of the project, is that none of the approaches are 完全地 直接(尤其取决于您的解决方案组成),等等 if your project 是  准时交货很重要 to 知道您可能需要执行哪些步骤。

附带说明一下,让我们在这里阐明一些可能引起混淆的术语:

  • 内容部署-可用于移动内容的“路径和作业”功能, surfaced by 管理中心中的屏幕
  • 内容迁移API-基础API(有时称为PRIME),实际上用于两个STSADM导出 除了“管理内容和结构”工具以及从CMS2002迁移而来的内容部署(以略有不同的方式)

这次,我决定使用内容迁移API来部署我们的解决方案,并且它可以正常工作 适合我们的情况。这与我过去完成的功能开发形成了对比,选择这种方法的主要原因是: 

  • 无需迭代部署 - 尽管我们的整体项目是分阶段进行的, 对于这个组件,我们能够 开发解决方案,然后部署我们开发环境中的所有内容。 (这种方法将 not work 对于后续部署,因为我们的客户在实时网站上生成的内容将在每次部署中被覆盖-有关更多信息,请参见下一篇文章。
  • 保留对象GUID的能力 - 因为我们的项目大大简化了部署,因为 如果我们的列表在部署时被分配了新的GUID(与STSADM导出/导入一样),则引用这些列表的组件(ListViewWebPart,InfoPath表单等)将无法正确连接 the 部署 target. This would add a lot of "fix-up" steps to 部署 process if we were to use STSADM export.
  • 没有从源Central Admin到目标Central Admin的直接HTTP访问 -这是在Central Admin中使用Content Deployment功能(路径和作业)的先决条件,但是我们需要的是可以复制到实时服务器中的文件。内容迁移API提供了此功能,还为大量数据提供了压缩选项。
  • 自动 包含数据库 dependencies - 与STSADM导出(但不包括功能)一样,SharePoint将分析并收集所有依赖项,例如字段,内容类型,母版页等。 us.

该API使用起来相当简单,您可能已经看到 斯特凡的系列精彩文章 就此主题而言 - these serve as 一个很好的伴侣 MSDN文档.

重要的是要记住,任何非数据库资产 (例如用户控件,程序集等)需要手动部署到目标环境-使用STSADM导出或 内容迁移API。就我们而言, 现场环境是一个单一的 server (and 版本控制将由我们的主要源代码控制系统处理),这些由XCOPY部署,因为 deployment using 解决方案包 在这里没有提供任何引人注目的优势。 

在讨论文件系统文件时,请务必注意,在执行(例如)STSADM之后,如果在目标计算机上看到404错误, 导入,很可能您忘记了部署用户控件之类的东西。 404实际上来自引用的文件而不是实际的页面,因此请不要假定导入有问题 - a 检查“查看所有网站内容”,导入日志可能会确认所有网站页面均存在!

希望这为您可能没有考虑的方法提供了一些思考的方法。我想我的主要意思是,尽管STSADM导出非常简单,但由于GUID更改,它可能无法完全解决所有部署难题。在接下来的文章中,我将提供更直接的部署策略比较(扩展“功能或内容部署”文章),并分享我的微型应用程序,它为内容迁移API提供了前端。

[P.S. Sincere apologies to people who left 评论 whilst I 原为 on holiday which 是 still 不 published - I'll publish these 和 respond over the next few days.

C。]