Skip to main content

PowerShell: Get Actual Error

I was having hard time to find the reason why I was not able to find a custom method in a .Net DLL.

Find your Assembly:


PS C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts> [appdomain]::currentdomain.getassemblies() | Where-Object FullName -Match "MyAssembly"



GAC    Version        Location

---    -------        --------

False  v4.0.30319     C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts\Tools\MyAssembly.dll



PS C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts> $a = [appdomain]::currentdomain.getassemblies() | Where-Object FullName -Match "MyAssembly"

PS C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts> $a



GAC    Version        Location

---    -------        --------

False  v4.0.30319     C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts\Tools\MyAssembly.dll


When I was trying to get the Types in the assembly, I was getting the exception:


PS C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts> $a.GetTypes()
Exception calling "GetTypes" with "0" argument(s): "Unable to load one or more of the requested types. Retrieve the
LoaderExceptions property for more information."
At line:1 char:1
+ $a.GetTypes()
+ ~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : ReflectionTypeLoadException

I tried to get the actual exception, but I was not able to get it. Then I found following code which displayed the actual exception:


PS C:\vstsagent\A1\_work\r1\a\_DevOps_CI\Scripts> $x = $Error[0]
>> $x.Exception.GetBaseException().LoaderExceptions

Could not load file or assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or
one of its dependencies. The system cannot find the file specified.
Could not load file or assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or
one of its dependencies. The system cannot find the file specified.
Could not load file or assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or
one of its dependencies. The system cannot find the file specified.


Comments