2013-02-12 9 views
7

ich ein Powershell-Modul erstellt haben, die ganz gut funktioniert, wenn ich es wie dieses Import-Module von GAC für Powershell-Usage

Import-Module "C:\temp\My.PowerShell.DocumentConversion.dll" 

I als auch das Modul in der globalen Assembly-Cache hat

laden registrieren, kann aber nicht Lade es von dort. Ich habe überprüft, dass das Modul tatsächlich in den gac geladen ist. Ich dachte, dass es ausreichen würde, um das Modul wie diese

Import-Module My.PowerShell.DocumentConversion.dll 

Offensichtlich war ich falsch zu laden, wie Sie eine Powershell-Module von GAC laufen?

Antwort

15

Versuchen Sie, die Add-Type Cmdlets:

Add-Type -Assembly My.PowerShell.DocumentConversion 

Wenn es funktioniert nicht die LoadWithPartialName Methode versuchen:

[System.Reflection.Assembly]::LoadWithPartialName('My.PowerShell.DocumentConversion') 

oder den vollständigen Pfad:

[System.Reflection.Assembly]::LoadFile(...) 
+0

Oder mit den vollständigen Pfad: [System.Reflection.Assembly] :: Loadfrom (...) – RinoTom

2

Solange die Montage ist in der GAC, verwenden Sie einfach den starken Namen, um die Baugruppe zu verweisen. Um den Pfad zu dem GAC beachten Sie bekommen sie sich geändert hat in .Net 4,0 http://en.wikipedia.org/wiki/Global_Assembly_Cache

$assemblyPath = 'path to the assembly file in the gac' 
$fullName = [System.Reflection.AssemblyName]::GetAssemblyName($assemblyPath).FullName 
[System.Reflection.Assembly]::Load($fullName)