通过反射加载程序集成功,Add-Type不会

时间:2014-12-10 14:44:42

标签: .net powershell

我在Powershell中使用.net程序集。此代码成功运行:

[Reflection.Assembly]::LoadFile("E:\Workspaces\RTE\dh.PSP.Common\Mainline\Source\dh.Common.MetaData\bin\dh.Common.Metadata.dll")
$marketMetadataRepository = New-Object dh.Common.Metadata.MarketMetadataRepository

结果:

  

GAC版本位置

     

--- ------- -------- False v4.0.30319
  E:\工作区\ RTE \ dh.PSP.Common \干线\源\ dh.Common.MetaData \ BIN \ dh.Common.Metadata.dll

所以人们会认为这也会成功:

Add-Type -AssemblyName
"E:\Workspaces\RTE\dh.PSP.Common\Mainline\Source\dh.Common.MetaData\bin\dh.Common.Metadata.dll"

但没有:

  

Add-Type:无法加载文件或程序集   ' E:\工作区\ RTE \ dh.PSP.Common \干线\来源\ dh.Common.MetaData \ BIN \ dh.Common.Metadata.dll'   或其中一个依赖项。给定的程序集名称或代码库是   无效。 (来自HRESULT的异常:0x80131047)

我很困惑为什么一种方法会起作用而另一种方法不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

Add-Type的-assemblyname参数需要完整或部分程序集名称。请尝试使用-path