@@ -495,6 +495,26 @@ public object PrivateData
495495 [ ValidateNotNullOrEmpty ]
496496 public string ReleaseNotes { get ; set ; }
497497
498+ /// <summary>
499+ /// Gets or sets whether or not the module is a prerelease.
500+ /// </summary>
501+ [ Parameter ]
502+ [ ValidateNotNullOrEmpty ]
503+ public string Prerelease { get ; set ; }
504+
505+ /// <summary>
506+ /// Gets or sets whether or not the module requires explicit user acceptance for install/update/save.
507+ /// </summary>
508+ [ Parameter ]
509+ public SwitchParameter RequireLicenseAcceptance { get ; set ; } = true ;
510+
511+ /// <summary>
512+ /// Gets or sets the external module dependencies.
513+ /// </summary>
514+ [ Parameter ]
515+ [ ValidateNotNullOrEmpty ]
516+ public string [ ] ExternalModuleDependencies { get ; set ; }
517+
498518 /// <summary>
499519 /// Specify the HelpInfo URI.
500520 /// </summary>
@@ -1044,65 +1064,65 @@ protected override void EndProcessing()
10441064 if ( _rootModule == null )
10451065 _rootModule = string . Empty ;
10461066
1047- BuildModuleManifest ( result , " RootModule" , Modules . RootModule , ! string . IsNullOrEmpty ( _rootModule ) , ( ) => QuoteName ( _rootModule ) , streamWriter ) ;
1067+ BuildModuleManifest ( result , nameof ( RootModule ) , Modules . RootModule , ! string . IsNullOrEmpty ( _rootModule ) , ( ) => QuoteName ( _rootModule ) , streamWriter ) ;
10481068
1049- BuildModuleManifest ( result , " ModuleVersion" , Modules . ModuleVersion , _moduleVersion != null && ! string . IsNullOrEmpty ( _moduleVersion . ToString ( ) ) , ( ) => QuoteName ( _moduleVersion ) , streamWriter ) ;
1069+ BuildModuleManifest ( result , nameof ( ModuleVersion ) , Modules . ModuleVersion , _moduleVersion != null && ! string . IsNullOrEmpty ( _moduleVersion . ToString ( ) ) , ( ) => QuoteName ( _moduleVersion ) , streamWriter ) ;
10501070
1051- BuildModuleManifest ( result , " CompatiblePSEditions" , Modules . CompatiblePSEditions , _compatiblePSEditions != null && _compatiblePSEditions . Length > 0 , ( ) => QuoteNames ( _compatiblePSEditions , streamWriter ) , streamWriter ) ;
1071+ BuildModuleManifest ( result , nameof ( CompatiblePSEditions ) , Modules . CompatiblePSEditions , _compatiblePSEditions != null && _compatiblePSEditions . Length > 0 , ( ) => QuoteNames ( _compatiblePSEditions , streamWriter ) , streamWriter ) ;
10521072
1053- BuildModuleManifest ( result , " GUID" , Modules . GUID , ! string . IsNullOrEmpty ( _guid . ToString ( ) ) , ( ) => QuoteName ( _guid . ToString ( ) ) , streamWriter ) ;
1073+ BuildModuleManifest ( result , nameof ( Modules . GUID ) , Modules . GUID , ! string . IsNullOrEmpty ( _guid . ToString ( ) ) , ( ) => QuoteName ( _guid . ToString ( ) ) , streamWriter ) ;
10541074
1055- BuildModuleManifest ( result , " Author" , Modules . Author , ! string . IsNullOrEmpty ( _author ) , ( ) => QuoteName ( Author ) , streamWriter ) ;
1075+ BuildModuleManifest ( result , nameof ( Author ) , Modules . Author , ! string . IsNullOrEmpty ( _author ) , ( ) => QuoteName ( Author ) , streamWriter ) ;
10561076
1057- BuildModuleManifest ( result , " CompanyName" , Modules . CompanyName , ! string . IsNullOrEmpty ( _companyName ) , ( ) => QuoteName ( _companyName ) , streamWriter ) ;
1077+ BuildModuleManifest ( result , nameof ( CompanyName ) , Modules . CompanyName , ! string . IsNullOrEmpty ( _companyName ) , ( ) => QuoteName ( _companyName ) , streamWriter ) ;
10581078
1059- BuildModuleManifest ( result , " Copyright" , Modules . Copyright , ! string . IsNullOrEmpty ( _copyright ) , ( ) => QuoteName ( _copyright ) , streamWriter ) ;
1079+ BuildModuleManifest ( result , nameof ( Copyright ) , Modules . Copyright , ! string . IsNullOrEmpty ( _copyright ) , ( ) => QuoteName ( _copyright ) , streamWriter ) ;
10601080
1061- BuildModuleManifest ( result , " Description" , Modules . Description , ! string . IsNullOrEmpty ( _description ) , ( ) => QuoteName ( _description ) , streamWriter ) ;
1081+ BuildModuleManifest ( result , nameof ( Description ) , Modules . Description , ! string . IsNullOrEmpty ( _description ) , ( ) => QuoteName ( _description ) , streamWriter ) ;
10621082
1063- BuildModuleManifest ( result , " PowerShellVersion" , Modules . PowerShellVersion , _powerShellVersion != null && ! string . IsNullOrEmpty ( _powerShellVersion . ToString ( ) ) , ( ) => QuoteName ( _powerShellVersion ) , streamWriter ) ;
1083+ BuildModuleManifest ( result , nameof ( PowerShellVersion ) , Modules . PowerShellVersion , _powerShellVersion != null && ! string . IsNullOrEmpty ( _powerShellVersion . ToString ( ) ) , ( ) => QuoteName ( _powerShellVersion ) , streamWriter ) ;
10641084
1065- BuildModuleManifest ( result , " PowerShellHostName" , Modules . PowerShellHostName , ! string . IsNullOrEmpty ( _PowerShellHostName ) , ( ) => QuoteName ( _PowerShellHostName ) , streamWriter ) ;
1085+ BuildModuleManifest ( result , nameof ( PowerShellHostName ) , Modules . PowerShellHostName , ! string . IsNullOrEmpty ( _PowerShellHostName ) , ( ) => QuoteName ( _PowerShellHostName ) , streamWriter ) ;
10661086
1067- BuildModuleManifest ( result , " PowerShellHostVersion" , Modules . PowerShellHostVersion , _PowerShellHostVersion != null && ! string . IsNullOrEmpty ( _PowerShellHostVersion . ToString ( ) ) , ( ) => QuoteName ( _PowerShellHostVersion ) , streamWriter ) ;
1087+ BuildModuleManifest ( result , nameof ( PowerShellHostVersion ) , Modules . PowerShellHostVersion , _PowerShellHostVersion != null && ! string . IsNullOrEmpty ( _PowerShellHostVersion . ToString ( ) ) , ( ) => QuoteName ( _PowerShellHostVersion ) , streamWriter ) ;
10681088
1069- BuildModuleManifest ( result , " DotNetFrameworkVersion" , StringUtil . Format ( Modules . DotNetFrameworkVersion , Modules . PrerequisiteForDesktopEditionOnly ) , _DotNetFrameworkVersion != null && ! string . IsNullOrEmpty ( _DotNetFrameworkVersion . ToString ( ) ) , ( ) => QuoteName ( _DotNetFrameworkVersion ) , streamWriter ) ;
1089+ BuildModuleManifest ( result , nameof ( DotNetFrameworkVersion ) , StringUtil . Format ( Modules . DotNetFrameworkVersion , Modules . PrerequisiteForDesktopEditionOnly ) , _DotNetFrameworkVersion != null && ! string . IsNullOrEmpty ( _DotNetFrameworkVersion . ToString ( ) ) , ( ) => QuoteName ( _DotNetFrameworkVersion ) , streamWriter ) ;
10701090
1071- BuildModuleManifest ( result , " CLRVersion" , StringUtil . Format ( Modules . CLRVersion , Modules . PrerequisiteForDesktopEditionOnly ) , _ClrVersion != null && ! string . IsNullOrEmpty ( _ClrVersion . ToString ( ) ) , ( ) => QuoteName ( _ClrVersion ) , streamWriter ) ;
1091+ BuildModuleManifest ( result , nameof ( Modules . CLRVersion ) , StringUtil . Format ( Modules . CLRVersion , Modules . PrerequisiteForDesktopEditionOnly ) , _ClrVersion != null && ! string . IsNullOrEmpty ( _ClrVersion . ToString ( ) ) , ( ) => QuoteName ( _ClrVersion ) , streamWriter ) ;
10721092
1073- BuildModuleManifest ( result , " ProcessorArchitecture" , Modules . ProcessorArchitecture , _processorArchitecture . HasValue , ( ) => QuoteName ( _processorArchitecture . ToString ( ) ) , streamWriter ) ;
1093+ BuildModuleManifest ( result , nameof ( ProcessorArchitecture ) , Modules . ProcessorArchitecture , _processorArchitecture . HasValue , ( ) => QuoteName ( _processorArchitecture . ToString ( ) ) , streamWriter ) ;
10741094
1075- BuildModuleManifest ( result , " RequiredModules" , Modules . RequiredModules , _requiredModules != null && _requiredModules . Length > 0 , ( ) => QuoteModules ( _requiredModules , streamWriter ) , streamWriter ) ;
1095+ BuildModuleManifest ( result , nameof ( RequiredModules ) , Modules . RequiredModules , _requiredModules != null && _requiredModules . Length > 0 , ( ) => QuoteModules ( _requiredModules , streamWriter ) , streamWriter ) ;
10761096
1077- BuildModuleManifest ( result , " RequiredAssemblies" , Modules . RequiredAssemblies , _requiredAssemblies != null , ( ) => QuoteFiles ( _requiredAssemblies , streamWriter ) , streamWriter ) ;
1097+ BuildModuleManifest ( result , nameof ( RequiredAssemblies ) , Modules . RequiredAssemblies , _requiredAssemblies != null , ( ) => QuoteFiles ( _requiredAssemblies , streamWriter ) , streamWriter ) ;
10781098
1079- BuildModuleManifest ( result , " ScriptsToProcess" , Modules . ScriptsToProcess , _scripts != null , ( ) => QuoteFiles ( _scripts , streamWriter ) , streamWriter ) ;
1099+ BuildModuleManifest ( result , nameof ( ScriptsToProcess ) , Modules . ScriptsToProcess , _scripts != null , ( ) => QuoteFiles ( _scripts , streamWriter ) , streamWriter ) ;
10801100
1081- BuildModuleManifest ( result , " TypesToProcess" , Modules . TypesToProcess , _types != null , ( ) => QuoteFiles ( _types , streamWriter ) , streamWriter ) ;
1101+ BuildModuleManifest ( result , nameof ( TypesToProcess ) , Modules . TypesToProcess , _types != null , ( ) => QuoteFiles ( _types , streamWriter ) , streamWriter ) ;
10821102
1083- BuildModuleManifest ( result , " FormatsToProcess" , Modules . FormatsToProcess , _formats != null , ( ) => QuoteFiles ( _formats , streamWriter ) , streamWriter ) ;
1103+ BuildModuleManifest ( result , nameof ( FormatsToProcess ) , Modules . FormatsToProcess , _formats != null , ( ) => QuoteFiles ( _formats , streamWriter ) , streamWriter ) ;
10841104
1085- BuildModuleManifest ( result , " NestedModules" , Modules . NestedModules , _nestedModules != null , ( ) => QuoteModules ( PreProcessModuleSpec ( _nestedModules ) , streamWriter ) , streamWriter ) ;
1105+ BuildModuleManifest ( result , nameof ( NestedModules ) , Modules . NestedModules , _nestedModules != null , ( ) => QuoteModules ( PreProcessModuleSpec ( _nestedModules ) , streamWriter ) , streamWriter ) ;
10861106
1087- BuildModuleManifest ( result , " FunctionsToExport" , Modules . FunctionsToExport , true , ( ) => QuoteNames ( _exportedFunctions , streamWriter ) , streamWriter ) ;
1107+ BuildModuleManifest ( result , nameof ( FunctionsToExport ) , Modules . FunctionsToExport , true , ( ) => QuoteNames ( _exportedFunctions , streamWriter ) , streamWriter ) ;
10881108
1089- BuildModuleManifest ( result , " CmdletsToExport" , Modules . CmdletsToExport , true , ( ) => QuoteNames ( _exportedCmdlets , streamWriter ) , streamWriter ) ;
1109+ BuildModuleManifest ( result , nameof ( CmdletsToExport ) , Modules . CmdletsToExport , true , ( ) => QuoteNames ( _exportedCmdlets , streamWriter ) , streamWriter ) ;
10901110
1091- BuildModuleManifest ( result , " VariablesToExport" , Modules . VariablesToExport , _exportedVariables != null && _exportedVariables . Length > 0 , ( ) => QuoteNames ( _exportedVariables , streamWriter ) , streamWriter ) ;
1111+ BuildModuleManifest ( result , nameof ( VariablesToExport ) , Modules . VariablesToExport , _exportedVariables != null && _exportedVariables . Length > 0 , ( ) => QuoteNames ( _exportedVariables , streamWriter ) , streamWriter ) ;
10921112
1093- BuildModuleManifest ( result , " AliasesToExport" , Modules . AliasesToExport , true , ( ) => QuoteNames ( _exportedAliases , streamWriter ) , streamWriter ) ;
1113+ BuildModuleManifest ( result , nameof ( AliasesToExport ) , Modules . AliasesToExport , true , ( ) => QuoteNames ( _exportedAliases , streamWriter ) , streamWriter ) ;
10941114
1095- BuildModuleManifest ( result , " DscResourcesToExport" , Modules . DscResourcesToExport , _dscResourcesToExport != null && _dscResourcesToExport . Length > 0 , ( ) => QuoteNames ( _dscResourcesToExport , streamWriter ) , streamWriter ) ;
1115+ BuildModuleManifest ( result , nameof ( DscResourcesToExport ) , Modules . DscResourcesToExport , _dscResourcesToExport != null && _dscResourcesToExport . Length > 0 , ( ) => QuoteNames ( _dscResourcesToExport , streamWriter ) , streamWriter ) ;
10961116
1097- BuildModuleManifest ( result , " ModuleList" , Modules . ModuleList , _moduleList != null , ( ) => QuoteModules ( _moduleList , streamWriter ) , streamWriter ) ;
1117+ BuildModuleManifest ( result , nameof ( ModuleList ) , Modules . ModuleList , _moduleList != null , ( ) => QuoteModules ( _moduleList , streamWriter ) , streamWriter ) ;
10981118
1099- BuildModuleManifest ( result , " FileList" , Modules . FileList , _miscFiles != null , ( ) => QuoteFiles ( _miscFiles , streamWriter ) , streamWriter ) ;
1119+ BuildModuleManifest ( result , nameof ( FileList ) , Modules . FileList , _miscFiles != null , ( ) => QuoteFiles ( _miscFiles , streamWriter ) , streamWriter ) ;
11001120
11011121 BuildPrivateDataInModuleManifest ( result , streamWriter ) ;
11021122
1103- BuildModuleManifest ( result , " HelpInfoURI" , Modules . HelpInfoURI , ! string . IsNullOrEmpty ( _helpInfoUri ) , ( ) => QuoteName ( ( _helpInfoUri != null ) ? new Uri ( _helpInfoUri ) : null ) , streamWriter ) ;
1123+ BuildModuleManifest ( result , nameof ( Modules . HelpInfoURI ) , Modules . HelpInfoURI , ! string . IsNullOrEmpty ( _helpInfoUri ) , ( ) => QuoteName ( ( _helpInfoUri != null ) ? new Uri ( _helpInfoUri ) : null ) , streamWriter ) ;
11041124
1105- BuildModuleManifest ( result , " DefaultCommandPrefix" , Modules . DefaultCommandPrefix , ! string . IsNullOrEmpty ( _defaultCommandPrefix ) , ( ) => QuoteName ( _defaultCommandPrefix ) , streamWriter ) ;
1125+ BuildModuleManifest ( result , nameof ( DefaultCommandPrefix ) , Modules . DefaultCommandPrefix , ! string . IsNullOrEmpty ( _defaultCommandPrefix ) , ( ) => QuoteName ( _defaultCommandPrefix ) , streamWriter ) ;
11061126
11071127 result . Append ( "}" ) ;
11081128 result . Append ( streamWriter . NewLine ) ;
@@ -1174,7 +1194,7 @@ private void BuildPrivateDataInModuleManifest(StringBuilder result, StreamWriter
11741194 {
11751195 WriteWarning ( Modules . PrivateDataValueTypeShouldBeHashTableWarning ) ;
11761196
1177- BuildModuleManifest ( result , " PrivateData" , Modules . PrivateData , _privateData != null ,
1197+ BuildModuleManifest ( result , nameof ( PrivateData ) , Modules . PrivateData , _privateData != null ,
11781198 ( ) => QuoteName ( ( string ) LanguagePrimitives . ConvertTo ( _privateData , typeof ( string ) , CultureInfo . InvariantCulture ) ) ,
11791199 streamWriter ) ;
11801200 }
@@ -1192,11 +1212,14 @@ private void BuildPrivateDataInModuleManifest(StringBuilder result, StreamWriter
11921212
11931213 _indent = " " ;
11941214
1195- BuildModuleManifest ( result , "Tags" , Modules . Tags , Tags != null && Tags . Length > 0 , ( ) => QuoteNames ( Tags , streamWriter ) , streamWriter ) ;
1196- BuildModuleManifest ( result , "LicenseUri" , Modules . LicenseUri , LicenseUri != null , ( ) => QuoteName ( LicenseUri ) , streamWriter ) ;
1197- BuildModuleManifest ( result , "ProjectUri" , Modules . ProjectUri , ProjectUri != null , ( ) => QuoteName ( ProjectUri ) , streamWriter ) ;
1198- BuildModuleManifest ( result , "IconUri" , Modules . IconUri , IconUri != null , ( ) => QuoteName ( IconUri ) , streamWriter ) ;
1199- BuildModuleManifest ( result , "ReleaseNotes" , Modules . ReleaseNotes , ! string . IsNullOrEmpty ( ReleaseNotes ) , ( ) => QuoteName ( ReleaseNotes ) , streamWriter ) ;
1215+ BuildModuleManifest ( result , nameof ( Tags ) , Modules . Tags , Tags != null && Tags . Length > 0 , ( ) => QuoteNames ( Tags , streamWriter ) , streamWriter ) ;
1216+ BuildModuleManifest ( result , nameof ( LicenseUri ) , Modules . LicenseUri , LicenseUri != null , ( ) => QuoteName ( LicenseUri ) , streamWriter ) ;
1217+ BuildModuleManifest ( result , nameof ( ProjectUri ) , Modules . ProjectUri , ProjectUri != null , ( ) => QuoteName ( ProjectUri ) , streamWriter ) ;
1218+ BuildModuleManifest ( result , nameof ( IconUri ) , Modules . IconUri , IconUri != null , ( ) => QuoteName ( IconUri ) , streamWriter ) ;
1219+ BuildModuleManifest ( result , nameof ( ReleaseNotes ) , Modules . ReleaseNotes , ! string . IsNullOrEmpty ( ReleaseNotes ) , ( ) => QuoteName ( ReleaseNotes ) , streamWriter ) ;
1220+ BuildModuleManifest ( result , nameof ( Prerelease ) , Modules . Prerelease , ! string . IsNullOrEmpty ( Prerelease ) , ( ) => QuoteName ( Prerelease ) , streamWriter ) ;
1221+ BuildModuleManifest ( result , nameof ( RequireLicenseAcceptance ) , Modules . RequireLicenseAcceptance , RequireLicenseAcceptance . IsPresent , ( ) => { return RequireLicenseAcceptance . IsPresent ? "$true" : "$false" ; } , streamWriter ) ;
1222+ BuildModuleManifest ( result , nameof ( ExternalModuleDependencies ) , Modules . ExternalModuleDependencies , ExternalModuleDependencies != null && ExternalModuleDependencies . Length > 0 , ( ) => QuoteNames ( ExternalModuleDependencies , streamWriter ) , streamWriter ) ;
12001223
12011224 result . Append ( " } " ) ;
12021225 result . Append ( ManifestComment ( StringUtil . Format ( Modules . EndOfManifestHashTable , "PSData" ) , streamWriter ) ) ;
0 commit comments