English 中文(简体)
我应该保持解决方案和功能的一对一比例吗?
原标题:
  • 时间:2008-12-17 15:35:29
  •  标签:

我有一个复杂的SharePoint部署,其中包含多个EventReceivers和Workflows。

我还有对现有列表的架构更改,添加元数据新列和更改现有列。

我应该将单个功能、事件接收器或工作流打包成一个解决方案,还是将多个功能放到单个解决方案中,因为它们都可以一起工作?

我询问的一个主要原因是为了将来的代码升级。如果特性是分开的,那么对代码的一个部分进行升级不需要重新部署解决方案中的所有特性。这是我应该担心的问题还是"stsadmin -o upgradesolution"可以处理具有多个特性的解决方案升级中的任何问题?

请告诉我有没有任何SharePoint专家能理解这个。

Thank you,
Keith

Update: Looking at the website drax referenced, I found this reference site: http://msdn.microsoft.com/en-us/library/aa543659.aspx

这句话似乎对解决方案中的升级功能产生了很大的障碍:

Solution upgrade can only be used to replace files. You can add new files in a solution upgrade and remove old versions of the files, but you cannot install Features or use Feature event handlers to run code for Feature installation and activation. The following operations are not supported in solution upgrade.

  • Removing old Features in a new version of a solution.

  • Adding new Features in a solution upgrade.

  • Updating or changing the receiver assembly for existing Features in a new version of a solution.

  • Adding or changing Feature elements (Element.xml files) in a new version of a solution.

  • Adding or changing Feature properties in a new version of a solution.

  • Changing the ID or scope of old Features in a new version of a solution.

  • Removing Feature elements (Element.xml files) in a new version of a solution.

  • Removing Feature properties in a new version of a solution.

那么......升级解决方案可以做什么?

最佳回答

我建议不要把所有东西分成多个解决方案。这样做可能很快变成噩梦。尝试按照SharePoint的12个文件夹的方式来组织项目,这样可以用于创建WSP。然后,您可以使用WSP builder,最新稳定版本带来了许多有用的东西。

我也没有注意到重新部署解决方案时出现任何问题。根据 这篇 文章和我的经验来看,WSP 的部署会处理版本间的同步。因此,如果您添加了一些新功能,它们将出现在解决方案中;如果您删除/更改了功能,它们也会相应地被修改。

修改:

所以我在MOSS更新主题上做了一些快速研究。据微软称,有两种更新解决方案的方法:

  1. In-place update
  2. Incremental update

基本上,原地升级是更新的标准方法。这意味着您正在依赖内置功能,如(与之前发布的文档相同)文档中所述。这种解决方案的问题在于它缺少相当多的功能(版本控制,更改功能的ID等)。

渐进式更新(大概是微软所称之)不依赖内置解决方案。这意味着每个人都需要自己实施它 :(. 更好的是,我实际上找不到任何关于这种方法的指南。我想你想采取的方法是渐进式更新的例子(将项目分成许多独立解决方案)。

请注意,微软不正式支持增量更新。

所以我真的不知道该给你什么建议。单个 WSP 比一堆 WSP 更易维护,而且如果你只做一些小的更改,更新就可以完美执行。但如果你需要做一些更大的结构性更改,问题就开始出现了。

我可能会等一下,看看更有关于MOSS专业知识的人能否对这个话题发表意见。

问题回答

基本上(由于您所提到的原因),您应该将解决方案视为 .Net 程序集 - 可以单独部署的代码原子单位。使用 upgradesolution 将导致所有包含功能的重新部署 - 如果没有更改,那么使用该功能的网站不应更改任何内容。但是,如果这让您感到不安,请考虑拆分它。

如果只更新程序集且保持已提供文件不变,UpgradeSolution真的很方便。

除非您指定“-local”,否则upgradesolution将在您的基础架构上执行完全的iisreset。这对于您计划执行升级的正确时间非常值得注意。





相关问题
热门标签