我正在尝试运行一个PowerShell脚本,需要加载多个程序集来完成我的任务。大多数程序集都可以正常加载,但有一个我无法正常使用:
Microsoft.VisualStudio.Services.Common.dll
我尝试了几种不同的方法。
我尝试了LoadFrom、ReflectionOnlyLoadFrom和Add-Type -Path方法,但它们都返回一个错误,说
无法加载文件或程序集'path\Microsoft.WITDataStore64.dll'或其其中之一的依赖项。该模块应该包含一个程序集清单......
FulllyQualifiedErrorID:BadImageFormatException
我尝试了ReflectionOnlyLoad,但它只是返回一个错误,说
使用“1”个参数调用“ReflectionOnlyLoad”时出错:“无法加载文件或程序集'$pathToDlls\\Microsoft.WITDataStore64.dll'或其其中之一的依赖项。给定的程序集名称或代码库无效。
(HRESULT的异常:0x80131047)”
路径是正确的——我已经视觉确认了文件是否存在——dll的名称也是正确的(只是为了确保复制粘贴了文件名)。其他dll正在正常加载,只有这一个没有加载。
微软有一个关于此异常的文档页面,并建议我使用开发语言提供的功能“访问DLL中定义的方法”。我认为它假设我正在使用不仅仅是PowerShell。如果有一种通过PowerShell访问DLL方法的方法,我不知道。
是什么让这个特定的dll更难加载,我该如何让它加载?
ReflectionOnlyLoadFrom()
而不是ReflectionOnlyLoad()
。 - Mathias R. Jessen