确定Powershell中COM和.NET DLL之间的差异

确定Powershell中COM和.NET DLL之间的差异,powershell,Powershell,我正在编写一个脚本,将DLL从bin文件夹复制并移动到映射驱动器,在此过程中需要注册/注销DLL。我已经知道怎么做了,但有一个陷阱。我正在使用的程序使用VB6 COM DLL和VB.NET.NET DLL。我知道COM DLL使用regsvr32.exe,.NET DLL使用regasm.exe,但我感兴趣的是根据我移动的DLL以编程方式调用正确的函数。有没有办法确定我在Powershell中使用的时间 [Reflection.Assembly]::LoadFile( `mydll.dll`)

我正在编写一个脚本,将DLL从bin文件夹复制并移动到映射驱动器,在此过程中需要注册/注销DLL。我已经知道怎么做了,但有一个陷阱。我正在使用的程序使用VB6 COM DLL和VB.NET.NET DLL。我知道COM DLL使用regsvr32.exe,.NET DLL使用regasm.exe,但我感兴趣的是根据我移动的DLL以编程方式调用正确的函数。有没有办法确定我在Powershell中使用的时间

[Reflection.Assembly]::LoadFile( `mydll.dll`)
如果它不是.Net dll,则应引发BadImageFormatException

根据:

当动态链接库(.dll文件)或可执行文件(.exe文件)的文件格式与公共语言运行时所期望的格式不一致时,会引发此异常。特别是,在以下情况下会引发此异常:

试图加载非托管动态链接库或可执行文件(如Windows系统DLL),就像加载.NET Framework程序集一样。以下示例通过使用assembly.LoadFile方法加载Kernel32.DLL来说明这一点。”