Skip to content

Commit 33e8379

Browse files
authored
Update information about external dependencies (#12336)
1 parent bdbb8f1 commit 33e8379

File tree

9 files changed

+154
-95
lines changed

9 files changed

+154
-95
lines changed

reference/5.1/Microsoft.PowerShell.Core/About/about_Module_Manifests.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Describes the settings and practices for writing module manifest files.
33
Locale: en-US
4-
ms.date: 07/07/2023
4+
ms.date: 09/04/2025
55
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_module_manifests?view=powershell-5.1&WT.mc_id=ps-gethelp
66
schema: 2.0.0
77
title: about_Module_Manifests
@@ -64,6 +64,7 @@ PrivateData = @{
6464
# ProjectUri = ''
6565
# IconUri = ''
6666
# ReleaseNotes = ''
67+
# ExternalModuleDependencies = @()
6768
} # End of PSData hashtable
6869
} # End of PrivateData hashtable
6970
# HelpInfoURI = ''
@@ -1470,15 +1471,18 @@ The **PSData** child property is used for the following scenarios:
14701471

14711472
- PowerShell Gallery - When you create a module manifest using
14721473
`New-ModuleManifest` the cmdlet prepopulates the **PSData** hashtable with
1473-
place holder keys that are needed when publishing the module to the
1474-
PowerShell Gallery. For more information on module manifests and the
1475-
publishing to the PowerShell Gallery, see
1474+
placeholder keys needed when publishing the module to the PowerShell Gallery.
1475+
For more information on module manifests and the publishing to the PowerShell
1476+
Gallery, see
14761477
[Package manifest values that impact the PowerShell Gallery UI][03].
14771478
- Crescendo modules - When you export a Crescendo manifest to create a new
14781479
module, `Export-CrescendoModule` adds the value `CrescendoBuilt` to the
14791480
**PSData.Tags** property. You can use this tag to find modules in the
14801481
PowerShell Gallery that were created using Crescendo. For more information,
14811482
see [Export-CrescendoModule][15].
1483+
- The **PSData.ExternalModuleDependencies** property is an array of module names
1484+
that are dependencies for this module. This property is informational only and
1485+
doesn't affect module installation or loading.
14821486

14831487
### HelpInfoURI
14841488

reference/5.1/Microsoft.PowerShell.Core/New-ModuleManifest.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -252,8 +252,9 @@ $moduleSettings = @{
252252
New-ModuleManifest @moduleSettings
253253
```
254254

255-
For information about Updatable Help, see [about_Updatable_Help](./About/about_Updatable_Help.md).
256-
For information about the HelpInfo XML file, see [Supporting Updatable Help](/powershell/scripting/developer/module/supporting-updatable-help).
255+
For information about Updatable Help, see [about_Updatable_Help](About/about_Updatable_Help.md).
256+
For information about the HelpInfo XML file, see
257+
[Supporting Updatable Help](/powershell/scripting/developer/module/supporting-updatable-help).
257258

258259
### Example 5 - Getting module information
259260

@@ -951,8 +952,9 @@ Enter each module name as a string or as a hash table with **ModuleName** and **
951952
keys. The hash table can also have an optional **GUID** key. You can combine strings and hash tables
952953
in the parameter value.
953954

954-
In PowerShell 2.0, `Import-Module` doesn't import required modules automatically. It just verifies
955-
that the required modules are in the global session state.
955+
When you install a module using the `Install-Module` or `Install-PSResource` commands, these
956+
commands check this list. If the required modules aren't installed, the commands attempt to install
957+
required modules.
956958

957959
```yaml
958960
Type: System.Object[]
@@ -1139,10 +1141,6 @@ that is installed in the global assembly cache.
11391141
To add or change files in the `$PSHOME\Modules` directory, start PowerShell with the **Run as
11401142
administrator** option.
11411143

1142-
In PowerShell 2.0, many parameters of `New-ModuleManifest` were mandatory, even though they weren't
1143-
required in a module manifest. Beginning in PowerShell 3.0, only the **Path** parameter is
1144-
mandatory.
1145-
11461144
A session is an instance of the PowerShell execution environment. A session can have one or more
11471145
session states. By default, a session has only a global session state, but each imported module has
11481146
its own session state. Session states allow the commands in a module to run without affecting the
@@ -1152,6 +1150,13 @@ The caller's session state is the session state into which a module is imported.
11521150
refers to the global session state, but when a module imports nested modules, the caller is the
11531151
module and the caller's session state is the module's session state.
11541152

1153+
In PowerShell 2.0, many parameters of `New-ModuleManifest` were mandatory, even though they weren't
1154+
required in a module manifest. Beginning in PowerShell 3.0, only the **Path** parameter is
1155+
mandatory.
1156+
1157+
In PowerShell 2.0, `Import-Module` doesn't import required modules automatically. It just verifies
1158+
that the required modules are in the global session state.
1159+
11551160
## RELATED LINKS
11561161

11571162
[Export-ModuleMember](Export-ModuleMember.md)

reference/7.4/Microsoft.PowerShell.Core/About/about_Module_Manifests.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Describes the settings and practices for writing module manifest files.
33
Locale: en-US
4-
ms.date: 07/07/2023
4+
ms.date: 09/04/2025
55
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_module_manifests?view=powershell-7.4&WT.mc_id=ps-gethelp
66
schema: 2.0.0
77
title: about_Module_Manifests
@@ -64,6 +64,7 @@ PrivateData = @{
6464
# ProjectUri = ''
6565
# IconUri = ''
6666
# ReleaseNotes = ''
67+
# ExternalModuleDependencies = @()
6768
} # End of PSData hashtable
6869
} # End of PrivateData hashtable
6970
# HelpInfoURI = ''
@@ -1470,9 +1471,9 @@ The **PSData** child property is used for the following scenarios:
14701471

14711472
- PowerShell Gallery - When you create a module manifest using
14721473
`New-ModuleManifest` the cmdlet prepopulates the **PSData** hashtable with
1473-
place holder keys that are needed when publishing the module to the
1474-
PowerShell Gallery. For more information on module manifests and the
1475-
publishing to the PowerShell Gallery, see
1474+
placeholder keys needed when publishing the module to the PowerShell Gallery.
1475+
For more information on module manifests and the publishing to the PowerShell
1476+
Gallery, see
14761477
[Package manifest values that impact the PowerShell Gallery UI][03].
14771478
- Experimental features - Metadata about an experimental feature is kept in the
14781479
**ExperimentalFeatures** property of **PSData**. The **ExperimentalFeatures**
@@ -1484,6 +1485,9 @@ The **PSData** child property is used for the following scenarios:
14841485
**PSData.Tags** property. You can use this tag to find modules in the
14851486
PowerShell Gallery that were created using Crescendo. For more information,
14861487
see [Export-CrescendoModule][15].
1488+
- The **PSData.ExternalModuleDependencies** property is an array of module names
1489+
that are dependencies for this module. This property is informational only and
1490+
doesn't affect module installation or loading.
14871491

14881492
### HelpInfoURI
14891493

reference/7.4/Microsoft.PowerShell.Core/New-ModuleManifest.md

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
external help file: System.Management.Automation.dll-Help.xml
33
Locale: en-US
44
Module Name: Microsoft.PowerShell.Core
5-
ms.date: 12/09/2022
5+
ms.date: 09/04/2025
66
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/new-modulemanifest?view=powershell-7.4&WT.mc_id=ps-gethelp
77
schema: 2.0.0
88
title: New-ModuleManifest
@@ -121,10 +121,12 @@ Copyright = '(c) ContosoAdmin. All rights reserved.'
121121
# Minimum version of the PowerShell host required by this module
122122
# PowerShellHostVersion = ''
123123
124-
# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
124+
# Minimum version of Microsoft .NET Framework required by this module. This prerequisite
125+
# is valid for the PowerShell Desktop edition only.
125126
# DotNetFrameworkVersion = ''
126127
127-
# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
128+
# Minimum version of the common language runtime (CLR) required by this module. This
129+
# prerequisite is valid for the PowerShell Desktop edition only.
128130
# CLRVersion = ''
129131
130132
# Processor architecture (None, X86, Amd64) required by this module
@@ -136,7 +138,8 @@ Copyright = '(c) ContosoAdmin. All rights reserved.'
136138
# Assemblies that must be loaded prior to importing this module
137139
# RequiredAssemblies = @()
138140
139-
# Script files (.ps1) that are run in the caller's environment prior to importing this module.
141+
# Script files (.ps1) that are run in the caller's environment prior to importing this
142+
# module.
140143
# ScriptsToProcess = @()
141144
142145
# Type files (.ps1xml) to be loaded when importing this module
@@ -148,16 +151,19 @@ Copyright = '(c) ContosoAdmin. All rights reserved.'
148151
# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
149152
# NestedModules = @()
150153
151-
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
154+
# Functions to export from this module, for best performance, do not use wildcards and do
155+
# not delete the entry, use an empty array if there are no functions to export.
152156
FunctionsToExport = @()
153157
154-
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
158+
# Cmdlets to export from this module, for best performance, do not use wildcards and do
159+
# not delete the entry, use an empty array if there are no cmdlets to export.
155160
CmdletsToExport = @()
156161
157162
# Variables to export from this module
158163
VariablesToExport = '*'
159164
160-
# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
165+
# Aliases to export from this module, for best performance, do not use wildcards and do
166+
# not delete the entry, use an empty array if there are no aliases to export.
161167
AliasesToExport = @()
162168
163169
# DSC resources to export from this module
@@ -169,7 +175,8 @@ AliasesToExport = @()
169175
# List of all files packaged with this module
170176
# FileList = @()
171177
172-
# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
178+
# Private data to pass to the module specified in RootModule/ModuleToProcess. This may
179+
also contain a PSData hashtable with additional module metadata used by PowerShell.
173180
PrivateData = @{
174181
175182
PSData = @{
@@ -205,7 +212,8 @@ PrivateData = @{
205212
# HelpInfo URI of this module
206213
# HelpInfoURI = ''
207214
208-
# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
215+
# Default prefix for commands exported from this module. Override the default prefix
216+
# using Import-Module -Prefix.
209217
# DefaultCommandPrefix = ''
210218
211219
}
@@ -265,8 +273,9 @@ $moduleSettings = @{
265273
New-ModuleManifest @moduleSettings
266274
```
267275

268-
For information about Updatable Help, see [about_Updatable_Help](./About/about_Updatable_Help.md).
269-
For information about the HelpInfo XML file, see [Supporting Updatable Help](/powershell/scripting/developer/module/supporting-updatable-help).
276+
For information about Updatable Help, see [about_Updatable_Help](About/about_Updatable_Help.md).
277+
For information about the HelpInfo XML file, see
278+
[Supporting Updatable Help](/powershell/scripting/developer/module/supporting-updatable-help).
270279

271280
### Example 5 - Getting module information
272281

@@ -549,7 +558,9 @@ Accept wildcard characters: True
549558

550559
### -ExternalModuleDependencies
551560

552-
A list of external modules that this module is depends on.
561+
A list of external modules that this module is depends on. This list is only used to document the
562+
module's dependencies and is not enforced by PowerShell. It's not used by the PowerShellGet or
563+
PSResourceGet commands, or by the PowerShell Gallery.
553564

554565
```yaml
555566
Type: System.String[]
@@ -608,7 +619,7 @@ Specifies the functions that the module exports. Wildcards are permitted.
608619
You can use this parameter to restrict the functions that are exported by the module. It can remove
609620
functions from the list of exported aliases, but it can't add functions to the list.
610621

611-
If you omit this parameter, `New-ModuleManifest` creates an **FunctionsToExport** key with a value
622+
If you omit this parameter, `New-ModuleManifest` creates a **FunctionsToExport** key with a value
612623
of `*` (all), meaning that all functions defined in the module are exported by the manifest.
613624

614625
```yaml
@@ -1000,8 +1011,9 @@ Enter each module name as a string or as a hash table with **ModuleName** and **
10001011
keys. The hash table can also have an optional **GUID** key. You can combine strings and hash tables
10011012
in the parameter value.
10021013

1003-
In PowerShell 2.0, `Import-Module` doesn't import required modules automatically. It just verifies
1004-
that the required modules are in the global session state.
1014+
When you install a module using the `Install-Module` or `Install-PSResource` commands, these
1015+
commands check this list. If the required modules aren't installed, the commands attempt to install
1016+
required modules.
10051017

10061018
```yaml
10071019
Type: System.Object[]
@@ -1211,10 +1223,6 @@ administrator** option.
12111223
> and the error is ignored. All managed DLLs are loaded in the process. This behavior was removed in
12121224
> PowerShell 7.1.
12131225

1214-
In PowerShell 2.0, many parameters of `New-ModuleManifest` were mandatory, even though they weren't
1215-
required in a module manifest. Beginning in PowerShell 3.0, only the **Path** parameter is
1216-
mandatory.
1217-
12181226
A session is an instance of the PowerShell execution environment. A session can have one or more
12191227
session states. By default, a session has only a global session state, but each imported module has
12201228
its own session state. Session states allow the commands in a module to run without affecting the
@@ -1224,6 +1232,13 @@ The caller's session state is the session state into which a module is imported.
12241232
refers to the global session state, but when a module imports nested modules, the caller is the
12251233
module and the caller's session state is the module's session state.
12261234

1235+
In PowerShell 2.0, many parameters of `New-ModuleManifest` were mandatory, even though they weren't
1236+
required in a module manifest. Beginning in PowerShell 3.0, only the **Path** parameter is
1237+
mandatory.
1238+
1239+
In PowerShell 2.0, `Import-Module` doesn't import required modules automatically. It just verifies
1240+
that the required modules are in the global session state.
1241+
12271242
## RELATED LINKS
12281243

12291244
[Export-ModuleMember](Export-ModuleMember.md)

reference/7.5/Microsoft.PowerShell.Core/About/about_Module_Manifests.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Describes the settings and practices for writing module manifest files.
33
Locale: en-US
4-
ms.date: 07/07/2023
4+
ms.date: 09/04/2025
55
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_module_manifests?view=powershell-7.5&WT.mc_id=ps-gethelp
66
schema: 2.0.0
77
title: about_Module_Manifests
@@ -64,6 +64,7 @@ PrivateData = @{
6464
# ProjectUri = ''
6565
# IconUri = ''
6666
# ReleaseNotes = ''
67+
# ExternalModuleDependencies = @()
6768
} # End of PSData hashtable
6869
} # End of PrivateData hashtable
6970
# HelpInfoURI = ''
@@ -1470,9 +1471,9 @@ The **PSData** child property is used for the following scenarios:
14701471

14711472
- PowerShell Gallery - When you create a module manifest using
14721473
`New-ModuleManifest` the cmdlet prepopulates the **PSData** hashtable with
1473-
place holder keys that are needed when publishing the module to the
1474-
PowerShell Gallery. For more information on module manifests and the
1475-
publishing to the PowerShell Gallery, see
1474+
placeholder keys needed when publishing the module to the PowerShell Gallery.
1475+
For more information on module manifests and the publishing to the PowerShell
1476+
Gallery, see
14761477
[Package manifest values that impact the PowerShell Gallery UI][03].
14771478
- Experimental features - Metadata about an experimental feature is kept in the
14781479
**ExperimentalFeatures** property of **PSData**. The **ExperimentalFeatures**
@@ -1484,6 +1485,9 @@ The **PSData** child property is used for the following scenarios:
14841485
**PSData.Tags** property. You can use this tag to find modules in the
14851486
PowerShell Gallery that were created using Crescendo. For more information,
14861487
see [Export-CrescendoModule][15].
1488+
- The **PSData.ExternalModuleDependencies** property is an array of module names
1489+
that are dependencies for this module. This property is informational only and
1490+
doesn't affect module installation or loading.
14871491

14881492
### HelpInfoURI
14891493

reference/7.5/Microsoft.PowerShell.Core/New-ModuleManifest.md

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
external help file: System.Management.Automation.dll-Help.xml
33
Locale: en-US
44
Module Name: Microsoft.PowerShell.Core
5-
ms.date: 12/09/2022
5+
ms.date: 09/04/2025
66
online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/new-modulemanifest?view=powershell-7.5&WT.mc_id=ps-gethelp
77
schema: 2.0.0
88
title: New-ModuleManifest
@@ -558,7 +558,9 @@ Accept wildcard characters: True
558558

559559
### -ExternalModuleDependencies
560560

561-
A list of external modules that this module is depends on.
561+
A list of external modules that this module is depends on. This list is only used to document the
562+
module's dependencies and is not enforced by PowerShell. It's not used by the PowerShellGet or
563+
PSResourceGet commands, or by the PowerShell Gallery.
562564

563565
```yaml
564566
Type: System.String[]
@@ -617,7 +619,7 @@ Specifies the functions that the module exports. Wildcards are permitted.
617619
You can use this parameter to restrict the functions that are exported by the module. It can remove
618620
functions from the list of exported aliases, but it can't add functions to the list.
619621

620-
If you omit this parameter, `New-ModuleManifest` creates an **FunctionsToExport** key with a value
622+
If you omit this parameter, `New-ModuleManifest` creates a **FunctionsToExport** key with a value
621623
of `*` (all), meaning that all functions defined in the module are exported by the manifest.
622624

623625
```yaml
@@ -663,7 +665,7 @@ The HelpInfo XML file supports the Updatable Help feature that was introduced in
663665
contains information about the location of downloadable help files for the module and the version
664666
numbers of the newest help files for each supported locale.
665667

666-
For information about Updatable Help, see [about_Updatable_Help](About/about_Updatable_Help.md).
668+
For information about Updatable Help, see [about_Updatable_Help](./About/about_Updatable_Help.md).
667669
For information about the HelpInfo XML file, see
668670
[Supporting Updatable Help](/powershell/scripting/developer/module/supporting-updatable-help).
669671

@@ -1009,8 +1011,9 @@ Enter each module name as a string or as a hash table with **ModuleName** and **
10091011
keys. The hash table can also have an optional **GUID** key. You can combine strings and hash tables
10101012
in the parameter value.
10111013

1012-
In PowerShell 2.0, `Import-Module` doesn't import required modules automatically. It just verifies
1013-
that the required modules are in the global session state.
1014+
When you install a module using the `Install-Module` or `Install-PSResource` commands, these
1015+
commands check this list. If the required modules aren't installed, the commands attempt to install
1016+
required modules.
10141017

10151018
```yaml
10161019
Type: System.Object[]
@@ -1220,10 +1223,6 @@ administrator** option.
12201223
> and the error is ignored. All managed DLLs are loaded in the process. This behavior was removed in
12211224
> PowerShell 7.1.
12221225

1223-
In PowerShell 2.0, many parameters of `New-ModuleManifest` were mandatory, even though they weren't
1224-
required in a module manifest. Beginning in PowerShell 3.0, only the **Path** parameter is
1225-
mandatory.
1226-
12271226
A session is an instance of the PowerShell execution environment. A session can have one or more
12281227
session states. By default, a session has only a global session state, but each imported module has
12291228
its own session state. Session states allow the commands in a module to run without affecting the
@@ -1233,6 +1232,13 @@ The caller's session state is the session state into which a module is imported.
12331232
refers to the global session state, but when a module imports nested modules, the caller is the
12341233
module and the caller's session state is the module's session state.
12351234

1235+
In PowerShell 2.0, many parameters of `New-ModuleManifest` were mandatory, even though they weren't
1236+
required in a module manifest. Beginning in PowerShell 3.0, only the **Path** parameter is
1237+
mandatory.
1238+
1239+
In PowerShell 2.0, `Import-Module` doesn't import required modules automatically. It just verifies
1240+
that the required modules are in the global session state.
1241+
12361242
## RELATED LINKS
12371243

12381244
[Export-ModuleMember](Export-ModuleMember.md)
@@ -1247,4 +1253,4 @@ module and the caller's session state is the module's session state.
12471253

12481254
[Test-ModuleManifest](Test-ModuleManifest.md)
12491255

1250-
[about_Modules](About/about_Modules.md)
1256+
[about_Modules](./About/about_Modules.md)

0 commit comments

Comments
 (0)