Assemblies
An assembly is a collection of types and any other supporting resources. .NET objects are implemented within assemblies. An assembly may be static (based on a file) or dynamic (created in memory).
The assembly type load locations can be seen by exploring the Assembly
property of the type. For example, the String
type is loaded from System.Private.CoreLib.dll
in PowerShell 7:
PS> [System.String].Assembly.Location
C:\Program Files\PowerShell\7\System.Private.CoreLib.dll
In PowerShell 7, the assemblies that are loaded by default or those that can be loaded by name are in the $PSHome
directory.
You can view the list of currently loaded assemblies in a PowerShell session using the following statement:
[System.AppDomain]::CurrentDomain.GetAssemblies()
The list can be quite extensive and can grow as different modules (which might depend on other .NET types) are loaded. The first few lines are shown here:
GAC Version Location
--- ---...