I got this working and wanted to share the process, as there is a key portion missing in the textbook.
Expanding on the DNN Manifest options on pages 277 & 278:
To trigger DNN into running iUpgradeable code in the BusinessControllerClass, it's necessary to add another section to the manifest. Look inside of the
<Component type="Module"><Component> element. Right after closing the
<desktopModule></desktopModule> section, add a node for
<eventMessage></eventMessage>.
Here is an example:
Code:
<eventMessage>
<processorType>DotNetNuke.Entities.Modules.EventMessageProcessor, DotNetNuke</processorType>
<processorCommand>UpgradeModule</processorCommand>
<attributes>
<businessControllerClass>CD_Development.Modules.CD_Announcements.CD_AnnouncementsController</businessControllerClass>
<desktopModuleID>[DESKTOPMODULEID]</desktopModuleID>
<upgradeVersionsList>01.00.00,01.00.01</upgradeVersionsList>
</attributes>
</eventMessage>
You can copy and paste most of this. Make sure to substitute your own <businessControllerClass> value.
The
<upgradeVersionsList> is where you trigger each section of your iUpgradeable code (inside your BusinessContollerClass). Refer to pages 165 & 166. It's perfectly ok to run more than one 'version' code section (meaning you can run the code for multiple versions like 01.00.00, 01.00.01, etc). You aren't restricted to running the upgrade code for only the current version. In my specific case, I need to add a scheduler item to the DNN Scheduler - doesn't matter what version my module is. So I have this coded in my
'Case "01.00.00"...' section. I didn't have to bother changing anything in my BusinessControllerClass, even though my module is now a higher version. To do this, add multiple version numbers inside of the
<upgradeVersionsList></upgradeVersionsList> element and seperate each with a comma. Do not use quotes around the values, and don't add a space.
Example:
<upgradeVersionsList>01.00.00,01.00.01</upgradeVersionsList>