0

我正在编写一个脚本来将 DLL 从 bin 文件夹复制并移动到映射驱动器,并且我需要在此过程中注册/取消注册 DLL。我已经想出了如何做到这一切,但有一个问题。我正在开发的程序使用 VB6 COM DLL 和 VB.NET .NET DLL。我知道 COM DLL 使用 regsvr32.exe,而 .NET DLL 使用 regasm.exe,但我有兴趣根据我正在移动的 DLL 以编程方式调用正确的函数。有没有办法确定我在 Powershell 中使用的时间?

4

1 回答 1

1

称呼

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

如果它不是 .Net dll,它应该引发 BadImageFormatException。

根据MSDN

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

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

于 2013-04-25T16:54:15.397 回答