Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Powershell dll loading

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") | Out-Null

Now, my C# library uses another library xyz.dll in it. I believe I don't need to load this in Powershell script, since the abc.dll will resolve it. However, I am getting an error saying:

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

Can someone please tell me how to fix this?

like image 457
techjourneyman Avatar asked Aug 02 '11 14:08

techjourneyman


2 Answers

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)
like image 125
manojlds Avatar answered Oct 10 '22 22:10

manojlds


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.

like image 34
chris.w.mclean Avatar answered Oct 10 '22 23:10

chris.w.mclean