仅在需要时加载DLL引用?

时间:2015-03-16 04:10:42

标签: vb.net

我创建了一个托管DLL(检查文件哈希)。 但是,我的意图是只有在实际检测到它时才使用它 My.Computer.FileSystem.FileExists检查(它是单独分发的),否则,DLL函数不被调用。

如果没有程序抱怨缺少引用,我怎么能这样做呢 DLL不在吗?

这是主叫行:

If My.Computer.FileSystem.FileExists(My.Application.Info.DirectoryPath & "\Addin.dll") Then
        If AddIn.CheckOps.Checking.CheckLibHashes = False Then
            MsgBox("Cannot load the Commercial Addin. Error message: bad file checksum" & vbCrLf & "Please re-install program and the Addin.", MsgBoxStyle.Critical)
        Else
            CommercialToolStripMenuItem.Visible = True
        End If
    Else
        CommercialToolStripMenuItem.Visible = False
    End If

谢谢!

1 个答案:

答案 0 :(得分:4)

不要在项目中添加对DLL的引用。 您需要的是动态加载托管DLL。

如果您的DLL存在,请使用

加载它
System.Reflection.Assembly oMyDLL = Assembly.LoadFrom(szDLL_FilePath);

Reference (System.Reflection.Assembly)