Dotnetnuke 为dnn模块创建升级包

Dotnetnuke 为dnn模块创建升级包,dotnetnuke,dotnetnuke-module,Dotnetnuke,Dotnetnuke Module,我有一个正在生产的模块,我想在不丢失任何数据的情况下进行升级。但是我找不到任何关于如何编写升级包的文档。我的更改涉及升级我的表。这取决于您最初开发模块的方式 如果你碰巧使用了我的模块模板,那就太简单了 创建一个新的SQL脚本(.sqldataprovider),此脚本应仅用于更改,而不用于重新创建相同的表。因此,如果添加了列,脚本应该检查该列是否已经存在,如果不存在,则将其添加到表中。如果添加过程,它应该检查过程是否存在,删除原始过程并再次创建它(或者可以使用alter) 在.DNN清单文件中包

我有一个正在生产的模块,我想在不丢失任何数据的情况下进行升级。但是我找不到任何关于如何编写升级包的文档。我的更改涉及升级我的表。

这取决于您最初开发模块的方式

如果你碰巧使用了我的模块模板,那就太简单了

  • 创建一个新的SQL脚本(.sqldataprovider),此脚本应仅用于更改,而不用于重新创建相同的表。因此,如果添加了列,脚本应该检查该列是否已经存在,如果不存在,则将其添加到表中。如果添加过程,它应该检查过程是否存在,删除原始过程并再次创建它(或者可以使用alter)
  • 在.DNN清单文件中包含对该文件的引用以及该文件的版本号
  • 在assemblyinfo.cs中更改您的版本号
  • 在DNN文件中更改模块版本的版本号
  • 再次以“释放”模式包装模块

  • 如果没有,您将不得不执行上述所有步骤,但步骤5将是您必须手动将模块打包到ZIP文件中的地方。

    您可以在清单上更具体一点吗?特别是,每个版本都应该卸载吗?此外,我的模块是否应该实现IUpgradable?是否有关于这些升级的文档以及清单的文档?如果卸载针对所有版本运行,则应卸载所有数据库对象(表、过程、视图等)。要实现上述任何一项,您的模块不需要IUpgradable,老实说,在我11年多的时间里,我从未实现过任何需要IUpgradable的模块。不幸的是,DNN本身没有太多文档。