Hi Charles, Mitchell and others
Many thanks for these sources. I look forward to exploring them more thoroughly.
Meanwhile I have installed my modules to 5.0 in a round about way that may be useful to others. I uploaded them to 4.9.1 from the zip package then upgraded 4.9.1 to 5.0. I can then generate a "first-cut" module manifest from the installed modules via host>module definitions>clicking pencil icon beside one of my modules to go to edit extensions>create package-next> chose file to include - next>choose assmblise to include-next>create manifest-next>create package-next. Unfortunately this did not pick up the dlls so some of the screens in this wizard are incomplete and the spelling needs a check, too.
This has also revealed a couple of issues in my software which is very closely integrated into DNN core elements such as profile properties. I also use some built in SQL views that seem to be creating a problems, see this error message when I run the 01.00.00.SqlDataProvider file as script a in 5.0.
System.Data.SqlClient.SqlException: Invalid column name 'ModuleName'. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at DotNetNuke.Data.SqlDataProvider.ExecuteADOScript(String SQL) at DotNetNuke.Data.SqlDataProvider.ExecuteScript(String Script, Boolean UseTransactions) CREATE procedure dbo.[MheLtd_GetMaxModuleIDByFriendlyName] -- note this stored procedure actually gets the max module id from the ModuleName @PortalId int, @FriendlyName nvarchar(128) AS SELECT MAX(dbo.vw_Modules.ModuleID) as ModuleID FROM dbo.vw_Modules INNER JOIN dbo.ModuleDefinitions as MD ON dbo.vw_Modules.ModuleDefID = MD.ModuleDefID WHERE ((PortalId = @PortalId) or (PortalId is null and @PortalID is null)) AND dbo.vw_Modules.ModuleName = @FriendlyName AND IsDeleted = 0
All suggestions welcome.
Kind regards
Geoffrey