我已经创建了一个PowerShell模块,如果我像这样加载它就可以正常运行
Import-Module "C:\temp\My.PowerShell.DocumentConversion.dll"
我确实在全局程序集缓存中注册了该模块,但无法从那里加载它。我已经验证了模块实际上已加载到gac中。我认为像这样加载模块就足够了
Import-Module My.PowerShell.DocumentConversion.dll
显然我错了,怎么做从gac运行powershell模块?
答案 0 :(得分:18)
尝试Add-Type
cmdlet:
Add-Type -Assembly My.PowerShell.DocumentConversion
如果它无效,请尝试使用LoadWithPartialName方法:
[System.Reflection.Assembly]::LoadWithPartialName('My.PowerShell.DocumentConversion')
或使用完整路径:
[System.Reflection.Assembly]::LoadFile(...)
答案 1 :(得分: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)