So, as I was looking at various ways to get at assemblies and the types contained, I found that the Powershell Community Extensions has two cmdlets, in addition to a provider for the GAC (Global Assembly Cache). One of the cmdlets (Resolve-Assembly) allows you to search for a partial name and returns any assembly objects that match. You can pipe the result into the Load static method of System.Reflection.Assembly:
resolve-assembly system.windows.forms | ForEach-Object {[void][System.Reflection.Assembly]::Load($_)}
If you want to find the types in that assembly you could pipe it to:
<br> resolve-assembly system.windows.forms | ForEach-Object {$_.GetTypes()} <br> If you don't have access to the Community Extensions, you can enumerate the types in assemblies by using the
by loading them by their file name by using [System.Reflection.Assembly]::LoadFile() and then calling the GetTypes method on the returned Assembly object. As I mentioned in the previous post, a large number of .NET assemblies are stored under the C:\Windows\Assembly folder, other .NET assemblies and applications can be found in other locations (usually the application install directory).
Hope this helps.