2013-04-25 51 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來說明此問題。「

相關問題