2013-02-12 65 views
7

我創建了一個PowerShell的模塊,工作得很好,如果我加載像這樣導入模塊的PowerShell的用法

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

我也註冊在全局程序集緩存模塊,以及,但不能從那裏加載它。我已經確認模塊實際上已加載到gac中。我想,這將是足以載入這樣

Import-Module My.PowerShell.DocumentConversion.dll 

顯然我錯了模塊,如何做一個從GAC運行PowerShell模塊?

回答

15

嘗試Add-Type的cmdlet:

Add-Type -Assembly My.PowerShell.DocumentConversion 

如果它不工作嘗試LoadWithPartialName方法:

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

或者使用完整路徑:

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

已更改或使用完整的路徑: [System.Reflection.Assembly] :: LoadFrom(...) – RinoTom 2013-02-15 07:05:16

2

只要裝配在GAC中,只是使用強名稱來引用程序集。 要獲得路徑GAC知道它在.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)