@@ -528,37 +528,45 @@ elseif ($TranspilerWarnings) {
528528 <ScriptMethod >
529529 <Name >ToString</Name >
530530 <Script >
531- $requirement = $this
532- if ($requirement.RequirementPSVersion) {
533- "#requires -Version $($requirement.RequirementPSVersion)"
534- }
535- if ($requirement.IsElevationRequired) {
536- "#requires -RunAsAdministrator"
537- }
538- if ($requirement.RequiredModules) {
539- "#requires -Module $(@(foreach ($reqModule in $requirement.RequiredModules) {
540- if ($reqModule.Version -or $req.RequiredVersion -or $req.MaximumVersion) {
541- '@{' + $(@(foreach ($prop in $reqModule.PSObject.Properties) {
542- if (-not $prop.Value) { continue }
543- if ($prop.Name -in 'Name', 'Version') {
544- "Module$($prop.Name)='$($prop.Value.ToString().Replace("'","''"))'"
545- } elseif ($prop.Name -eq 'RequiredVersion') {
546- "MinimumVersion='$($prop.Value)'"
547- } else {
548- "$($prop.Name)='$($prop.Value)'"
549- }
550- }) -join ';') + '}'
551- } else {
552- $reqModule.Name
553- }
554- }) -join ',')"
555- }
556- if ($requirement.RequiredAssemblies) {
557- "#requires -Assembly $($requirement.RequiredAssemblies -join ',')"
558- }
531+ $this.Script.ToString()
559532
560533 </Script >
561534 </ScriptMethod >
535+ <ScriptProperty >
536+ <Name >Script</Name >
537+ <GetScriptBlock >
538+ $requirement = $this
539+ [ScriptBlock]::create(
540+ @(if ($requirement.RequirementPSVersion) {
541+ "#requires -Version $($requirement.RequirementPSVersion)"
542+ }
543+ if ($requirement.IsElevationRequired) {
544+ "#requires -RunAsAdministrator"
545+ }
546+ if ($requirement.RequiredModules) {
547+ "#requires -Module $(@(foreach ($reqModule in $requirement.RequiredModules) {
548+ if ($reqModule.Version -or $req.RequiredVersion -or $req.MaximumVersion) {
549+ '@{' + $(@(foreach ($prop in $reqModule.PSObject.Properties) {
550+ if (-not $prop.Value) { continue }
551+ if ($prop.Name -in 'Name', 'Version') {
552+ "Module$($prop.Name)='$($prop.Value.ToString().Replace("'","''"))'"
553+ } elseif ($prop.Name -eq 'RequiredVersion') {
554+ "MinimumVersion='$($prop.Value)'"
555+ } else {
556+ "$($prop.Name)='$($prop.Value)'"
557+ }
558+ }) -join ';') + '}'
559+ } else {
560+ $reqModule.Name
561+ }
562+ }) -join ',')"
563+ }
564+ if ($requirement.RequiredAssemblies) {
565+ "#requires -Assembly $($requirement.RequiredAssemblies -join ',')"
566+ }) -join [Environment]::NewLine
567+ )
568+ </GetScriptBlock >
569+ </ScriptProperty >
562570 </Members >
563571 </Type >
564572 <Type >
0 commit comments