我在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)
我很困惑为什么一种方法会起作用而另一种方法不起作用。有什么想法吗?
答案 0 :(得分:2)
Add-Type的-assemblyname
参数需要完整或部分程序集名称。请尝试使用-path
。