2013-02-12 12 views
7

ho creato un modulo PowerShell che funziona bene se carico come questoImport-Module da GAC ​​per PowerShell Utilizzo

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

ho fatto registrare il modulo nella Global Assembly Cache come pure, ma non ci riesco caricarlo da lì. Ho verificato che il modulo in effetti è caricato nel gac. Ho pensato che sarebbe stato sufficiente per caricare il modulo come questo

Import-Module My.PowerShell.DocumentConversion.dll 

Ovviamente mi sbagliavo, come si fa uno fare per eseguire moduli PowerShell dal GAC?

risposta

15

provare il Add-Type cmdlet:

Add-Type -Assembly My.PowerShell.DocumentConversion 

Se non funziona provare il metodo LoadWithPartialName:

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

o utilizzando il percorso completo:

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

o utilizzando il percorso completo: [System.Reflection.Assembly] :: LoadFrom (...) – RinoTom

2

Finché l'assemblea è nel GAC, basta usare il nome sicuro per fare riferimento all'assembly. per ottenere il percorso al GAC essere a conoscenza è cambiato 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)