Load c# library

Hello,

there are already links to this topic, but I did not yet get it running.

I did create a simple .NET core (3.1) class library and compile it for x64. I did compile it to x64 since powershell command [Environment]::Is64BitProcess delivers true.

Then I want to import my dll with reflection:

[string]$assemblyPath = ‘C:\TFS\CBP\W\Main\Scripts\ScriptHelperLibrary.dll’
void
$data = [ScriptHelperLibrary.StaticHelper]::CreateShortcut()

That works, but when I call my static method I get an error:
$data = [ScriptHelperLibrary.StaticHelper]::CreateShortcut()
“Der Typ [ScriptHelperLibrary.StaticHelper] wurde nicht gefunden.”

I did also try to load my dll with this call:

try{Add-Type -Path “C:\TFS\CBP\W\Main\Scripts\ScriptHelperLibrary.dll” -ReferencedAssemblies System.Xml,System.Runtime}catch [System.Reflection.ReflectionTypeLoadException]
{
Write-Host “Message: $($.Exception.Message)"
Write-Host "StackTrace: $($
.Exception.StackTrace)”
Write-Host “LoaderExceptions: $($_.Exception.LoaderExceptions)”
}

Message: Mindestens ein Typ in der Assembly kann nicht geladen werden. Rufen Sie die LoaderExceptions-Eigenschaft ab, wenn Sie weitere Informationen benötigen.
StackTrace: bei System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
bei System.Reflection.Assembly.GetTypes()
bei Microsoft.PowerShell.Commands.AddTypeCommand.LoadAssemblyFromPathOrName(List`1 generatedTypes)
bei Microsoft.PowerShell.Commands.AddTypeCommand.EndProcessing()
bei System.Management.Automation.CommandProcessorBase.Complete()
LoaderExceptions: System.IO.FileNotFoundException: Die Datei oder Assembly “System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.
Dateiname: “System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”

WRN: Protokollierung der Assemblybindung ist AUS.
Sie können die Protokollierung der Assemblybindungsfehler aktivieren, indem Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) auf 1 festlegen.
Hinweis: Die Protokollierung der Assemblybindungsfehler führt zu einer gewissen Leistungseinbuße.
Sie können dieses Feature deaktivieren, indem Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion!EnableLog] entfernen.

In dem Aufruf oben habe ich extra schon referenced assembly gesetzt, da ich den Fehler zuvor auch erhalten habe. Was fehlt hier? Ich habe noch nie eine dll mit powershell geladen.

Vielen Dank für Hilfe

I did find the problem. There is powershell also available for core. I did create a class library for .Net Framework. It did work directly. So I would recomment to check first the powershell version on each system. Then check if it is 32bit or 64 bit and create a library accordingly.