在创建包含数据类型和项目的包时,后续升级包以保留在站点上创建的数据同时添加对关联类型的更改的最佳实践是什么?
包名称应该保持不变还是应该包含版本信息以保持版本的唯一性?软件包的版本号似乎不强制执行任何类型的升级策略。
目前在开发过程中,软件包被卸载,然后更新的软件包随后被安装,但是在软件包达到生产后,我相信这种类型的升级工作流在不影响相关数据的情况下是不够的。
在创建包含数据类型和项目的包时,后续升级包以保留在站点上创建的数据同时添加对关联类型的更改的最佳实践是什么?
包名称应该保持不变还是应该包含版本信息以保持版本的唯一性?软件包的版本号似乎不强制执行任何类型的升级策略。
目前在开发过程中,软件包被卸载,然后更新的软件包随后被安装,但是在软件包达到生产后,我相信这种类型的升级工作流在不影响相关数据的情况下是不够的。
只要您增加包版本但保留其唯一的 GUID 和名称,您就可以再次安装相同的包,从而强制 C1 覆盖现有文件、配置等。
不过,这有一些注意事项,主要是如果您需要在安装过程中删除一些旧文件或配置条目,因为这是您在卸载过程中通常会做的事情。但是您仍然可以这样做,编写您自己的 installaton-steps 代码。
它是从您可以在安装期间调用的一些核心基础包类继承的类。它可以包含诸如检查是否安装了某些其他软件包、执行自定义特殊逻辑或从早期升级中清理的逻辑。
但是,是的,长话短说,只要版本号增加,您就可以通过安装较新版本来“升级”软件包,同时仍安装旧版本。