Consider the scenario:
ScriptsToProcess
key refers to an intitialization script -- which is designed to throw an exception if pre-requisites aren't satisfied (providing an additional layer of checks beyond what the manifest schema offers), thus preventing the module from loadingModuleFolder\<langId>\ModuleResources.psd1
.psm1
script imports the localized string messages by running the Import-LocalizedData
cmdlet right after the data
sectiondata
section in the beginning of the .psm1
module script in the event that the <langId>
folders are missing/deletedIn the event that the init script throws an exception, how do you reference those localized string messages in the init script (as the .psm1 script fails to even load)?
I figured this out and feel like a moron.
The solution is to use the Import-LocalizedData
cmdlet in the init script (in this case, inside of a catch{}
block, before an exception is thrown) so that any exception message arguments can use your localized error message strings.