I have a Powershell script that calls a method in a C# library. The library dll is loaded as:
[Reflection.Assembly]::LoadFrom(\"$automationHome\\dll\\abc.dll
A couple of ideas:
Does the reference to xyz.dll from abc.dll (add reference) have the specific version property set to true (default setting) and you are using a later version of xyz.dll?
For some assemblies the only way to get them to work is o load them into the GAC. You may want to try loading xyz into the GAC.
LoadFrom()
should ideally look for the xyz.dll
in the same directory as abc.dll
If you are running the script from the same directory as the dlls, add the below and then do the LoadFrom()
$currentScriptDirectory = Get-Location
[System.IO.Directory]::SetCurrentDirectory($currentScriptDirectory.Path)
Make sure the dependency dll xyz is in the path that LoadLibrary will use. I think in your case that will be anything local to the powershell script, anything in a sub directory of the power shell script, or anything in the path variable or in the GAC.