3

我觉得我需要一个定义更好的框架来使用自定义代码更改来更新我的 SharePoint (MOSS 2007) 应用程序。我正在创建具有功能和新类型等的 wsp 解决方案文件,但是一旦这些被测试和部署,我觉得这有点信仰飞跃,这让我感到紧张,并且偶尔不愿意部署更改。部署后,很难将 SharePoint 应用程序的当前状态与部署在该 SharePoint 服务器上的特定代码关联起来。实际安装了哪些功能以及在哪些站点上?哪些功能被激活或停用?这个自定义字段或内容类型的哪个版本真的存在?诸如此类的事情。如果出现错误,我必须依靠我对那里和实际运行的代码的假设,

我应该采取哪些步骤来提高我明确确定应用程序状态并找到真正代表该状态的代码的能力?是否有第三方工具可以帮助解决这个问题?

4

3 回答 3

7

我感受到了你的痛苦…… SharePoint 2007 的应用程序开发生命周期让我感到苦涩。

回答你的问题。我们构建了自己的部署实用程序,为我们做了一些事情。

  1. 检查关键计时器作业的状态(我们会进行太多次部署以找到一个未部署的 WFE)

  2. 检查我们所有 Web 前端的关键服务状态(再次,我们想在开始计时作业之前了解农场的健康状况)。

  3. 显示 GAC 中选定程序集的文件版本和日期(在所有 Web 前端执行此操作)。我们之前已经看到过在农场中没有正确安装程序集的问题。

  4. Updates web.config settings based on an custom XML scheme we provide. We ran into some problems with web.config updates so we have thought about creating a utility to validate the web.config (specifically make sure there are no duplicate entries for specific keys).

  5. Push content type updates (first time content types are deployed via feature it works great, but as soon as you need to update that content type it gets tough).

  6. Checks status of WSP package after deployment or upgrade.

This utility uses the SharePoint API to do most of this work. Some of it is done by checking WMI Events.

于 2009-06-11T23:05:07.277 回答
1

不幸的是,在这方面缺乏 SharePoint 开发经验。只要您为使用解决方案包部署的所有功能“命名空间”,您就可以使用中央管理员的解决方案管理来跟踪版本以及部署到哪个网站集的内容。

功能范围从农场到单个网络的各个级别;所以从那个级别进行维护有点困难。我只是尝试从(自上而下)解决方案级别组织所有已部署的代码。

在部署自定义计时器作业、事件处理程序等时,它变得更加复杂;我真的希望下一个版本能够解决很多这些常见的开发人员问题。

于 2009-06-11T21:34:26.450 回答
0

Isn't the only way that you have a planned/controlled deployment process and a version management system like TFS

In the current project I am involved in we have:

  1. Continuous builds
  2. Daily Builds on a development server
  3. When we release something to test we merge the code to the Main bransch in the version management system (TFS)
  4. When tested and ready for production then we merge the main bransch to the release bransch

Using this structured way we always knows what is deployed in what environment and can also track all changes based on environment or changes in requirements(are also tracked in TFS)

于 2009-06-14T12:45:47.553 回答