我创建了一个项目,通过 XML 定义了一些内容类型和列表。发布后,我们需要对此功能进行一些更新以包含一些新功能。我担心的是,由于这一切都是通过 XML 完成的,因此可能会出现重大问题。

最初创建的列表至关重要。通过执行升级解决方案,它会拆除列表并尝试提供新的列表,还是会看到它们已经存在并且不执行任何操作?这些更新并不涉及列表本身,而是更新一些 ASPX 页面、javascript 文件并添加本地化内容。

自该项目以来,我已转向通过功能激活代码而不是静态列表实例来创建和配置列表,如果是这种情况,我可以在功能升级事件接收器中处理所有内容。

有帮助吗?

解决方案

如果您从 Visual Studio 中选择“部署”,则通过 XML 定义的列表将被清除,但使用时仍保持不变 Update-SPSolution. 。如果您仅更改程序集中部署的文件、页面或代码,则您的更改应该通过 Update-SPSolution.

您可能需要考虑的唯一一件事是,通过 SP 2010 中的模块部署到 SharePoint 的文件不会自动覆盖 Update-SPSolution 因此,如果对它们进行了修改,您必须先删除它们。部署到文件系统的文件则不是这种情况。需要注意的是, Update-SPSolution 命令不会触发 SPFeatureReceiver.FeatureUpgrading 事件,因此这不是删除这些文件的有效方法。看: Update-SPSolution 是否会触发 SPFeature.Upgrade()?

在 SP 2013 中,您可以使用 ReplaceContent="TRUE" 属性来处理这个问题。看: 使用功能元素覆盖 SharePoint 2013 库中的可重影文件(无代码)

许可以下: CC-BY-SA归因
scroll top