2009年3月26日,星期四

现在提供对内容部署向导的命令行支持

我很高兴地宣布,我现已完成对下一版本的内容部署向导的初步开发- 这是接下来几周的测试版 所以如果你需要"just work",您应该继续使用以前的版本(1.1),但我希望那里的某些人很乐意测试此Beta。该工具已作为“可在SharePoint工具箱中使用的便捷工具”而变得相当流行,希望此版本可以大大扩展其在某些情况下的有用性。如果您不熟悉该工具,则它提供了一种在场之间或同一场中不同站点之间导入/导出网站集,网站,列表以及文件或列表项的方法-Codeplex站点提供了更多详细信息。如前所述,此版本中的关键新附加功能是:

  • 命令行支持
  • 支持将导入/导出设置保存到文件(在Windows Forms应用程序中)以供以后重用
  • 安装程序

对向导的命令行支持意味着它现在可以以自动化方式使用。我认为这可能有用的一些关键方案是:

  • 持续集成/自动构建 -如果您的网站依赖SharePoint内容,则现在可以在构建过程中移动“真实”数据,例如,将选定的内容从“ dev”复制到“ build”或“ test”。我经常看到 静态的 在nAnt / CruiseControl / MSBuild脚本中以这种方式使用的数据(可能来自XML文件或Excel电子表格),但对于频繁更改的数据(配置值,查找列表等),效果不佳,因为总会有一个静态文件要单独维护。 
  • 部署脚本 -如果您使用部署脚本在开发人员计算机上“引导”网站,请再次拉 真实 来自中央“存储库站点”的数据可以在这里提供帮助。
  • 作为生产“内容部署策略”的一部分 -由于现成的内容部署仅限于将Web部署为最小项,因此可以使用向导来部署选定的列表/列表项/文件

显然,您可能对如何将其插入进程也有自己的想法。

这个怎么运作

  1. 首先,我们选择要移动的内容,就像通常使用向导一样。

    SelectExportItems
  2. ..,然后选择我们要用于此导出的选项。

    选择导出设置 

  3. 在最后一个屏幕上,应使用新的“保存设置..”按钮将您的选择保存到XML文件: 

    SaveSettingsButton  
    然后,您会得到一个如下所示的XML文件:
  4. <ExportSettings SiteUrl="http://cob.publish.dev" ExcludeDependencies="False" ExportMethod="ExportAll" 
                    IncludeVersions="LastMajor" IncludeSecurity="None" FileLocation="C:\Exports" 
                    BaseFileName="BlogSubwebAndPageTemplates.cmp">
      <ExportObjects>
        <DeploymentObject Id="b0fd667b-5b5e-41ba-827e-5d78b9a150ac" Title="Blog" Url="http://cob.publish.dev/Blog" Type="Web" IncludeDescendants="All" />
        <DeploymentObject Id="cfcc048e-c516-43b2-b5bf-3fb37cd561be" Title="http://cob.publish.dev/_catalogs/masterpage/COB.master" Url="_catalogs/masterpage/COB.master" Type="File" IncludeDescendants="None" />
        <DeploymentObject Id="670c1fb3-12f3-418b-b854-751ba80da917" Title="http://cob.publish.dev/_catalogs/masterpage/COBLayoutSimple.aspx" Url="_catalogs/masterpage/COBLayoutSimple.aspx" Type="File" IncludeDescendants="None" />
      </ExportObjects>
    </ExportSettings>

  5. 因此,我们现在有了一个XML“向导部署设置文件”,其中包含我们选择的对象的ID和导出选项。我们将继续展示如何在命令行上使用它,但请注意,这些设置也可以在以后的部署中加载到向导UI中,以免再次进行选择-关键是“加载设置” ..”按钮(我们之前没有显示):

    LoadSettingsButton 

  6. 对于向导的命令行使用,使用定制的STSADM命令。我们使用-settingsFile开关传递设置文件。要运行上面显示的导出操作,我们的命令应如下所示:
    stsadm -o RunWizardExport -settingsFile "C:\DeploymentSettings\ExportBlogSubwebAndTemplates.xml" -quiet
    -quiet参数是可选的,它禁止操作期间返回的某些进度消息。

  7. 对于导入操作,我们遵循相同的过程-进入向导并选择导入操作的设置,然后最后单击“保存设置..”以获取文件 (注:“导入设置”屏幕与以前的版本相比已略有简化):

    选择导入设置
  8. 导入命令如下所示:
    stsadm -o RunWizardImport -settingsFile "C:\DeploymentSettings\ImportBlogSubwebAndTemplates.xml" -quiet
    这就是它的两面。

真正使用它

当然,在实际使用中,您可能正在从一个SharePoint场部署到另一个。在这种情况下,如果要跨服务器场-如果您在服务器场之间具有网络访问权限(例如,正在内部将其用于自动构建/ CI),则还需要处理将.cmp文件从源环境复制到目标环境的操作),建议您在脚本中使用简单的XCOPY。对于没有网络连接的生产性内容部署方案,我在这里提供的内容将需要补充一些其他有关文件传输的内容。显然,基于Web服务的解决方案可能就是答案。

概要

如果需要定期自动移动任何SharePoint内容,则在命令行上使用向导可能会非常有用。与您可能会采用的其他方法相比,XML定义文件使您可以选择任意数量的网站/列表/列表项/文件来进行一次操作,这比单独运送项目更适合您的需求。

这很大程度上是一个beta版本,但是作为一个旁注,我希望最初的问题主要是围绕安装程序而不是核心代码进行的,因此,我提供了一个“手动”安装过程,它将使您克服所有此类问题(请参阅自述文件。不用说,如果您是一个乐于助人的开发人员,Codeplex上也为您提供了所有源代码。正如我所说,我希望有几个友好的测试人员可以尝试一下,并帮助我消除皱纹-请把任何问题提交到下面链接的Codeplex网站。

您可以从以下位置下载向导的2.0 beta版本(和源代码):

2009年3月9日,星期一

下一版本的内容部署向导的更新

通常,我只谈论过我正在使用的SharePoint工具,一旦它们100%完整并可以使用,但是最近我与用户组中的某人进行了交谈,这使我考虑了策略更改。普通读者会知道与我相关的主要工具是 的SharePoint内容部署向导 它已经变得非常流行(超过7000个下载)-偶尔我提到一个目标是实现命令行版本,因为这提供了各种部署可能性。但是我已经有一段时间没有谈论这个了,最近我和几个人交谈,他们以为我放弃了这个/没有时间去研究它,所以在这里我告诉你这是并非如此!

对于任何关心的人来说,好消息是,自从12月以来我一直在从事博客工作,并且几乎完成了工作。棘手的重构工作已经完成,在上周前往MVP峰会的飞行中,我有机会在其前面编写了自定义STSADM命令。我需要先做更多测试,但是我 希望在未来几周内发布Codeplex的Beta版 -如果您对在站点或服务器场之间以脚本方式部署特定站点/网站/列表/列表项的想法感兴趣(请记住,MOSS内容部署仅用于站点/网站并需要HTTP(S)连接),我希望友好的Beta测试人员将帮助我解决最后的问题。此版本的关键方面是:

  • 命令行支持
  • 支持将导入/导出设置保存到文件(在Windows Forms应用程序中)以供以后重用

在此版本发布后不久,我希望增加对增量部署的支持(因此,仅会部署站点/网站/列表/您选择的内容实际发生更改的内容),但这不幸地不会成为下一步工作。 。

敬请期待进一步的更新:-)

其他的东西

虽然我在做,但我正在准备的其他事情包括:

不用说,我的“想法列表”上还有很多其他博客文章。

旁注-回顾2年的SharePoint博客

奇怪的是,我现在进入SharePoint博客学习的第三年。我不知道这是怎么发生的。在使用SharePoint的功能框架进行了一些有趣的工作之后,最初的想法是写4到5篇我所要学习的文章-作为我自己的记录,而不是任何事情-并加以完成。从那以后,尽管我确实写了一些奇怪的“简单”文章(像这篇文章),但通常我的文章似乎需要很长时间才能完成,但是我知道它们可能会更好。有时我会被提醒!因此,要成为一名更好的博客作者还有很长的路要走,但我完全希望自己能继续坚持下去 另一个 2年的时间-当下一版本的SharePoint即将推出时,我还有很多话要说:-)