2013-04-25 98 views
0

我正在写一个脚本来复制并bin文件夹移动DLL来映射驱动器,我需要注册/过程中注销的DLL。我已经想出了如何做到这一点,但有一个问题。我正在使用的程序利用VB6 COM DLL和VB.NET .NET DLL。我知道COM DLL使用regsvr32.exe,而.NET DLL使用regasm.exe,但我有兴趣以编程方式调用基于我正在移动的DLL的正确函数。有什么方法可以确定我在Powershell中使用什么时间?确定COM和.NET的DLL之间的区别在PowerShell中

回答

1

呼叫

[Reflection.Assembly]::LoadFile(`mydll.dll`) 

应该提出一个BadImageFormatException如果它不是一个NET的DLL。

MSDN

“当一个动态链接库文件(.dll文件)或可执行文件(.exe文件)的文件格式不符合由预期的格式则抛出该异常公共语言运行库,特别是在以下条件下抛出异常: ...

尝试将非托管动态链接库或可执行文件(例如Windows系统DLL)加载为仿佛是.NET Framework程序集。以下示例通过使用Assembly.LoadFile方法加载Kernel32.dll来说明此问题。“