@@ -67,7 +67,7 @@ function FindAndParseResourceDefinitions
67
67
return
68
68
}
69
69
70
- " Loading resources from '$filePath '" | Write-DscTrace - Operation Trace
70
+ " Loading resources from file '$filePath '" | Write-DscTrace - Operation Trace
71
71
# TODO: Handle class inheritance
72
72
# TODO: Ensure embedded instances in properties are working correctly
73
73
[System.Management.Automation.Language.Token []] $tokens = $null
@@ -161,8 +161,18 @@ function LoadPowerShellClassResourcesFromModule
161
161
[PSModuleInfo ]$moduleInfo
162
162
)
163
163
164
+ " Loading resources from module '$ ( $moduleInfo.Path ) '" | Write-DscTrace - Operation Trace
165
+
164
166
if ($moduleInfo.RootModule )
165
167
{
168
+ if (([System.IO.Path ]::GetExtension($moduleInfo.RootModule ) -ne " .psm1" ) -and
169
+ ([System.IO.Path ]::GetExtension($moduleInfo.RootModule ) -ne " .ps1" ) -and
170
+ (-not $z.NestedModules ))
171
+ {
172
+ " RootModule is neither psm1 nor ps1 '$ ( $moduleInfo.RootModule ) '" | Write-DscTrace - Operation Trace
173
+ return [System.Collections.Generic.List [DscResourceInfo ]]::new()
174
+ }
175
+
166
176
$scriptPath = Join-Path $moduleInfo.ModuleBase $moduleInfo.RootModule
167
177
}
168
178
else
@@ -177,7 +187,9 @@ function LoadPowerShellClassResourcesFromModule
177
187
foreach ($nestedModule in $moduleInfo.NestedModules )
178
188
{
179
189
$resourcesOfNestedModules = LoadPowerShellClassResourcesFromModule $nestedModule
180
- $Resources.AddRange ($resourcesOfNestedModules )
190
+ if ($resourcesOfNestedModules ) {
191
+ $Resources.AddRange ($resourcesOfNestedModules )
192
+ }
181
193
}
182
194
}
183
195
@@ -280,7 +292,9 @@ function Invoke-DscCacheRefresh {
280
292
foreach ($mod in $modules )
281
293
{
282
294
[System.Collections.Generic.List [DscResourceInfo ]]$r = LoadPowerShellClassResourcesFromModule - moduleInfo $mod
283
- $DscResources.AddRange ($r )
295
+ if ($r ) {
296
+ $DscResources.AddRange ($r )
297
+ }
284
298
}
285
299
}
286
300
0 commit comments